Make scale relative instead of absolute.

This commit is contained in:
Jonathan Schleifer 2012-08-28 21:41:55 +02:00
parent 89e736050e
commit 563ae054a9
2 changed files with 13 additions and 8 deletions

View file

@ -132,7 +132,8 @@ ogk_color_to_allegro(ogk_color_t color)
{ {
al_draw_scaled_bitmap(bitmap, 0, 0, al_get_bitmap_width(bitmap), al_draw_scaled_bitmap(bitmap, 0, 0, al_get_bitmap_width(bitmap),
al_get_bitmap_height(bitmap), position.x, position.y, 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 - (void)drawAtPosition: (of_point_t)position
@ -148,7 +149,8 @@ ogk_color_to_allegro(ogk_color_t color)
{ {
al_draw_scaled_bitmap(bitmap, region.origin.x, region.origin.y, al_draw_scaled_bitmap(bitmap, region.origin.x, region.origin.y,
region.size.width, region.size.height, position.x, position.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 - (void)drawAtPosition: (of_point_t)position
@ -164,7 +166,8 @@ ogk_color_to_allegro(ogk_color_t color)
{ {
al_draw_tinted_scaled_bitmap(bitmap, ogk_color_to_allegro(tint), al_draw_tinted_scaled_bitmap(bitmap, ogk_color_to_allegro(tint),
0, 0, al_get_bitmap_width(bitmap), al_get_bitmap_height(bitmap), 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 - (void)drawAtPosition: (of_point_t)position
@ -183,8 +186,9 @@ ogk_color_to_allegro(ogk_color_t color)
{ {
al_draw_tinted_scaled_bitmap(bitmap, ogk_color_to_allegro(tint), al_draw_tinted_scaled_bitmap(bitmap, ogk_color_to_allegro(tint),
region.origin.x, region.origin.y, region.size.width, region.origin.x, region.origin.y, region.size.width,
region.size.height, position.x, position.y, scale.width, region.size.height, position.x, position.y,
scale.height, 0); scale.width * al_get_bitmap_width(bitmap),
scale.height * al_get_bitmap_height(bitmap), 0);
} }
- (ALLEGRO_BITMAP*)OGK_allegroBitmap - (ALLEGRO_BITMAP*)OGK_allegroBitmap

View file

@ -73,8 +73,9 @@ OF_APPLICATION_DELEGATE(TestMain)
event.wheel.y, event.deltaWheel.y); event.wheel.y, event.deltaWheel.y);
position = event.cursor; position = event.cursor;
scale = of_dimension(bitmap.size.width + event.wheel.x, scale = of_dimension(
bitmap.size.height + event.wheel.y); (bitmap.size.width + event.wheel.x) / bitmap.size.width,
(bitmap.size.height + event.wheel.y) / bitmap.size.height);
} }
- (void)mouseButtonWasPressed: (OGKMouseButtonPressedEvent*)event - (void)mouseButtonWasPressed: (OGKMouseButtonPressedEvent*)event
@ -133,7 +134,7 @@ OF_APPLICATION_DELEGATE(TestMain)
bitmap = [[OGKBitmap alloc] initWithFile: @"test.bmp"]; bitmap = [[OGKBitmap alloc] initWithFile: @"test.bmp"];
position = of_point(display.size.width / 2, display.size.height / 2); 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); tint = ogk_color(1, 1, 1, 0);
for (running = YES; running;) { for (running = YES; running;) {