Fix Bitmap.blt and Bitmap.stretch_blt in libretro builds

Whoops, I accidentally switched these two functions!
This commit is contained in:
刘皓 2025-03-20 22:54:31 -04:00
parent 7d557354da
commit 85025c5f33
No known key found for this signature in database
GPG key ID: 7901753DB465B711
2 changed files with 36 additions and 36 deletions

View file

@ -149,41 +149,6 @@ namespace mkxp_sandbox {
} }
static VALUE blt(int32_t argc, wasm_ptr_t argv, VALUE self) { static VALUE blt(int32_t argc, wasm_ptr_t argv, VALUE self) {
SANDBOX_COROUTINE(coro,
VALUE destRectObj;
VALUE srcObj;
VALUE srcRectObj;
int opacity;
VALUE operator()(int32_t argc, wasm_ptr_t argv, VALUE self) {
BOOST_ASIO_CORO_REENTER (this) {
destRectObj = ((VALUE *)(**sb() + argv))[0];
srcObj = ((VALUE *)(**sb() + argv))[1];
srcRectObj = ((VALUE *)(**sb() + argv))[2];
if (argc > 3) {
SANDBOX_AWAIT_AND_SET(opacity, rb_num2int, ((VALUE *)(**sb() + argv))[3]);
}
Bitmap *src = get_private_data<Bitmap>(srcObj);
if (src != NULL) {
Rect *destRect = get_private_data<Rect>(destRectObj);
Rect *srcRect = get_private_data<Rect>(srcRectObj);
if (argc > 4) {
GFX_GUARD_EXC(get_private_data<Bitmap>(self)->stretchBlt(destRect->toIntRect(), *src, srcRect->toIntRect(), opacity););
} else {
GFX_GUARD_EXC(get_private_data<Bitmap>(self)->stretchBlt(destRect->toIntRect(), *src, srcRect->toIntRect()););
}
}
}
return self;
}
)
return sb()->bind<struct coro>()()(argc, argv, self);
}
static VALUE stretch_blt(int32_t argc, wasm_ptr_t argv, VALUE self) {
SANDBOX_COROUTINE(coro, SANDBOX_COROUTINE(coro,
int x; int x;
int y; int y;
@ -219,6 +184,41 @@ namespace mkxp_sandbox {
return sb()->bind<struct coro>()()(argc, argv, self); return sb()->bind<struct coro>()()(argc, argv, self);
} }
static VALUE stretch_blt(int32_t argc, wasm_ptr_t argv, VALUE self) {
SANDBOX_COROUTINE(coro,
VALUE destRectObj;
VALUE srcObj;
VALUE srcRectObj;
int opacity;
VALUE operator()(int32_t argc, wasm_ptr_t argv, VALUE self) {
BOOST_ASIO_CORO_REENTER (this) {
destRectObj = ((VALUE *)(**sb() + argv))[0];
srcObj = ((VALUE *)(**sb() + argv))[1];
srcRectObj = ((VALUE *)(**sb() + argv))[2];
if (argc > 3) {
SANDBOX_AWAIT_AND_SET(opacity, rb_num2int, ((VALUE *)(**sb() + argv))[3]);
}
Bitmap *src = get_private_data<Bitmap>(srcObj);
if (src != NULL) {
Rect *destRect = get_private_data<Rect>(destRectObj);
Rect *srcRect = get_private_data<Rect>(srcRectObj);
if (argc > 4) {
GFX_GUARD_EXC(get_private_data<Bitmap>(self)->stretchBlt(destRect->toIntRect(), *src, srcRect->toIntRect(), opacity););
} else {
GFX_GUARD_EXC(get_private_data<Bitmap>(self)->stretchBlt(destRect->toIntRect(), *src, srcRect->toIntRect()););
}
}
}
return self;
}
)
return sb()->bind<struct coro>()()(argc, argv, self);
}
static VALUE fill_rect(int32_t argc, wasm_ptr_t argv, VALUE self) { static VALUE fill_rect(int32_t argc, wasm_ptr_t argv, VALUE self) {
SANDBOX_COROUTINE(coro, SANDBOX_COROUTINE(coro,
Bitmap *bitmap; Bitmap *bitmap;

View file

@ -27,7 +27,7 @@
#define WASM_PAGE_SIZE ((uint64_t)65536U) #define WASM_PAGE_SIZE ((uint64_t)65536U)
#define WASM_MIN_PAGES ((uint32_t)2048U) #define WASM_MIN_PAGES ((uint32_t)4096U)
extern "C" bool wasm_rt_is_initialized(void) { extern "C" bool wasm_rt_is_initialized(void) {
return true; return true;