Index: src/OGKBitmap.m ================================================================== --- src/OGKBitmap.m +++ src/OGKBitmap.m @@ -130,11 +130,12 @@ - (void)drawAtPosition: (of_point_t)position scale: (of_dimension_t)scale { al_draw_scaled_bitmap(bitmap, 0, 0, al_get_bitmap_width(bitmap), al_get_bitmap_height(bitmap), position.x, position.y, - scale.width, scale.height, 0); + scale.width * al_get_bitmap_width(bitmap), + scale.height * al_get_bitmap_height(bitmap), 0); } - (void)drawAtPosition: (of_point_t)position region: (of_rectangle_t)region { @@ -146,11 +147,12 @@ region: (of_rectangle_t)region scale: (of_dimension_t)scale { al_draw_scaled_bitmap(bitmap, region.origin.x, region.origin.y, region.size.width, region.size.height, position.x, position.y, - scale.width, scale.height, 0); + scale.width * al_get_bitmap_width(bitmap), + scale.height * al_get_bitmap_height(bitmap), 0); } - (void)drawAtPosition: (of_point_t)position tint: (ogk_color_t)tint { @@ -162,11 +164,12 @@ scale: (of_dimension_t)scale tint: (ogk_color_t)tint { al_draw_tinted_scaled_bitmap(bitmap, ogk_color_to_allegro(tint), 0, 0, al_get_bitmap_width(bitmap), al_get_bitmap_height(bitmap), - position.x, position.y, scale.width, scale.height, 0); + position.x, position.y, scale.width * al_get_bitmap_width(bitmap), + scale.height * al_get_bitmap_height(bitmap), 0); } - (void)drawAtPosition: (of_point_t)position region: (of_rectangle_t)region tint: (ogk_color_t)tint @@ -181,14 +184,15 @@ scale: (of_dimension_t)scale tint: (ogk_color_t)tint { al_draw_tinted_scaled_bitmap(bitmap, ogk_color_to_allegro(tint), region.origin.x, region.origin.y, region.size.width, - region.size.height, position.x, position.y, scale.width, - scale.height, 0); + region.size.height, position.x, position.y, + scale.width * al_get_bitmap_width(bitmap), + scale.height * al_get_bitmap_height(bitmap), 0); } - (ALLEGRO_BITMAP*)OGK_allegroBitmap { return bitmap; } @end Index: tests/TestMain.m ================================================================== --- tests/TestMain.m +++ tests/TestMain.m @@ -71,12 +71,13 @@ event.cursor.y, event.deltaCursor.y, event.wheel.x, event.deltaWheel.x, event.wheel.y, event.deltaWheel.y); position = event.cursor; - scale = of_dimension(bitmap.size.width + event.wheel.x, - bitmap.size.height + event.wheel.y); + scale = of_dimension( + (bitmap.size.width + event.wheel.x) / bitmap.size.width, + (bitmap.size.height + event.wheel.y) / bitmap.size.height); } - (void)mouseButtonWasPressed: (OGKMouseButtonPressedEvent*)event display: (OGKDisplay*)display { @@ -131,11 +132,11 @@ [eventQueue registerKeyboard]; [eventQueue registerMouse]; bitmap = [[OGKBitmap alloc] initWithFile: @"test.bmp"]; position = of_point(display.size.width / 2, display.size.height / 2); - scale = bitmap.size; + scale = of_dimension(1, 1); tint = ogk_color(1, 1, 1, 0); for (running = YES; running;) { @autoreleasepool { [self handleEvents];