summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-02-19 00:04:27 (EST)
committer P. J. McDermott <pjm@nac.net>2013-02-19 00:04:27 (EST)
commitd97803995c8512738297dcff27ceec60bd023405 (patch)
tree28c009e10304f76fa7a9b75ab95b41da301c38d6 /src/main.c
parenta1fabc10623b9e9a4177e8e0344d5edccdcf60b7 (diff)
downloadoverworld-rpg-d97803995c8512738297dcff27ceec60bd023405.zip
overworld-rpg-d97803995c8512738297dcff27ceec60bd023405.tar.gz
overworld-rpg-d97803995c8512738297dcff27ceec60bd023405.tar.bz2
Implement and test renderer.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c107
1 files changed, 105 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 5410d0e..71e465d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4,21 +4,116 @@
#include "resources/image.h"
#include "resources/map.h"
#include "viewport.h"
+#include "area.h"
int
main(void)
{
+ struct viewport *vp;
SDL_Surface *screen;
struct map *map;
struct image *img;
struct map_tileset *ts;
struct map_exit *e;
SDL_Rect imgrect, surfacerect;
+ struct area *a;
init();
- screen = init_viewport(240, 160, 8)->screen;
+ vp = init_viewport(240, 160, 32);
+ screen = vp->screen;
+
+ map = map_get("data/forest1-8bit.tmx");
+ a = area_new(map);
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(500);
+
+#if 0
+ vp->x = 208;
+ vp->y = 544;
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(125);
+ for (; vp->y >= 464; vp->y -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(50);
+ }
+ for (; vp->x <= 256; vp->x += 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(50);
+ }
+ for (; vp->y >= 192; vp->y -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(50);
+ }
+ for (; vp->x >= 160; vp->x -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(50);
+ }
+ for (; vp->y <= 288; vp->y += 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(50);
+ }
+#endif
+
+ vp->x = 208;
+ vp->y = 544;
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(125);
+ for (; vp->y >= 464; vp->y -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->x <= 256; vp->x += 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->y >= 192; vp->y -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->x >= 160; vp->x -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->y <= 320; vp->y += 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->x >= -16; vp->x -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->y >= 192; vp->y -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->x <= 64; vp->x += 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+ for (; vp->y >= 0; vp->y -= 4) {
+ render_area_to_viewport(a, vp);
+ SDL_Flip(screen);
+ SDL_Delay(25);
+ }
+
+ quit(0);
- map = map_get("data/forest1.tmx");
debug("Map dimensions: %dx%d", map->width, map->height);
for (ts = map->tilesets_head; ts != NULL; ts = ts->next) {
debug("Tileset name: %s", ts->tileset->name);
@@ -35,6 +130,14 @@ main(void)
}
img = img_png_get("../forest-6-layer-test_ground.png");
+ debug("screen: bpp: %u, masks: 0x%8.8x 0x%8.8x 0x%8.8x 0x%8.8x",
+ screen->format->BitsPerPixel,
+ screen->format->Rmask, screen->format->Gmask,
+ screen->format->Bmask, screen->format->Amask);
+ debug("image: bpp: %u, masks: 0x%8.8x 0x%8.8x 0x%8.8x 0x%8.8x",
+ img->image->format->BitsPerPixel,
+ img->image->format->Rmask, img->image->format->Gmask,
+ img->image->format->Bmask, img->image->format->Amask);
img_png_free(img);
quit(0);
return 0;