aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Apers2004-09-12 10:48:04 +0000
committerChris Apers2004-09-12 10:48:04 +0000
commitb8520692f4c462e10262a72381d324962a9f36be (patch)
tree962e3c2a72e4eba04bd9fe6dbc39aad817b756c5
parent3b39dd2ff9538ab93a0c1b5eee02a501a2f960c9 (diff)
downloadscummvm-rg350-b8520692f4c462e10262a72381d324962a9f36be.tar.gz
scummvm-rg350-b8520692f4c462e10262a72381d324962a9f36be.tar.bz2
scummvm-rg350-b8520692f4c462e10262a72381d324962a9f36be.zip
PalmOS : ARM optimized proc3 function
svn-id: r15023
-rw-r--r--scumm/costume.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/scumm/costume.cpp b/scumm/costume.cpp
index 0ed1ed1616..fa5451fef6 100644
--- a/scumm/costume.cpp
+++ b/scumm/costume.cpp
@@ -26,6 +26,11 @@
#include "scumm/costume.h"
#include "scumm/sound.h"
+#if defined(__PALM_OS__)
+#include "arm/native.h"
+#include "arm/macros.h"
+#endif
+
namespace Scumm {
const byte revBitMask[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 };
@@ -399,6 +404,27 @@ void CostumeRenderer::procC64(int actor) {
#undef MASK_AT
void CostumeRenderer::proc3() {
+#ifdef __PALM_OS__
+ ARM_START(CostumeProc3Type)
+ ARM_ADDP(v1)
+ ARM_ADDM(revBitMask)
+ ARM_ADDM(_srcptr)
+ ARM_ADDM(_height)
+ ARM_ADDM(_scaleIndexX)
+ ARM_ADDM(_scaleIndexY)
+ ARM_ADDM(_scaleX)
+ ARM_ADDM(_scaleY)
+ ARM_ADDM(_numStrips)
+ ARM_ADDM(_outwidth)
+ ARM_ADDM(_outheight)
+ ARM_ADDM(_shadow_mode)
+ ARM_ADDM(_shadow_table)
+ ARM_ADDV(_vm_proc_special_palette, _vm->_proc_special_palette)
+ ARM_ADDM(_palette)
+ PCE_CALL_RETURN(PNO_COSTUMEPROC3, ARM_DATA(), _scaleIndexX)
+ ARM_END()
+#endif
+
const byte *mask, *src;
byte *dst;
byte len, maskbit;
@@ -839,4 +865,3 @@ _GRELEASEPTR(GBVARS_COSTSCALETABLE_INDEX, GBVARS_SCUMM)
_GEND
#endif
-