summaryrefslogtreecommitdiff
path: root/src/graphic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphic.c')
-rw-r--r--src/graphic.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/graphic.c b/src/graphic.c
index 54a7bd1..8c995b3 100644
--- a/src/graphic.c
+++ b/src/graphic.c
@@ -204,11 +204,11 @@ int paintTerrain(gameIni_t *gIni, gameRess_t *gRess, gameState_t *gState) {
return 0;
}
-int renderTerrainToTexture(SDL_Renderer *rend, gameState_t *gState) {
+int renderTerrainToTextures(SDL_Renderer *rend, SDL_Surface *terrain, gameUI_t *gUI) {
int res, pitch;
SDL_Rect src_rect, dst_rect;
SDL_Surface *tmp_surf;
- SDL_PixelFormat *pf = gState->terrain->format;
+ SDL_PixelFormat *pf = terrain->format;
Uint32 *pixels;
tmp_surf = SDL_CreateRGBSurface(0,MPL_WIN_W, LEVEL_HEIGHT,
@@ -221,7 +221,7 @@ int renderTerrainToTexture(SDL_Renderer *rend, gameState_t *gState) {
"Can't SDL_CreateRGBSurface() for converting terrain"
);
- src_rect.x=gState->cameraX;
+ src_rect.x=gUI->cameraX;
src_rect.y=0;
src_rect.w=MPL_WIN_W;
src_rect.h=LEVEL_HEIGHT;
@@ -229,7 +229,7 @@ int renderTerrainToTexture(SDL_Renderer *rend, gameState_t *gState) {
dst_rect=src_rect;
dst_rect.x=0;
- res = SDL_BlitSurface(gState->terrain, &src_rect, tmp_surf, &dst_rect);
+ res = SDL_BlitSurface(terrain, &src_rect, tmp_surf, &dst_rect);
MPL_CHECK(
res==0,
{ SDL_FreeSurface(tmp_surf); return 2; },
@@ -237,23 +237,23 @@ int renderTerrainToTexture(SDL_Renderer *rend, gameState_t *gState) {
"Can't SDL_BlitSurface(terrain,...)"
);
- if (gState->terrainSprite.t == NULL) {
- gState->terrainSprite.t = SDL_CreateTexture(rend, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, dst_rect.w, dst_rect.h);
+ if (gUI->terrainSprite.t == NULL) {
+ gUI->terrainSprite.t = SDL_CreateTexture(rend, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, dst_rect.w, dst_rect.h);
MPL_CHECK(
- gState->terrainSprite.t,
+ gUI->terrainSprite.t,
{ SDL_FreeSurface(tmp_surf); return 3; },
SDL_LOG_PRIORITY_CRITICAL,
"Can't SDL_CreateTexture for terrainSprite"
);
- gState->terrainSprite.size = dst_rect;
- gState->terrainSprite.frames = 1;
+ gUI->terrainSprite.size = dst_rect;
+ gUI->terrainSprite.frames = 1;
}
- res=SDL_LockTexture(gState->terrainSprite.t, NULL, (void **)&pixels, &pitch);
+ res=SDL_LockTexture(gUI->terrainSprite.t, NULL, (void **)&pixels, &pitch);
MPL_CHECK(
(res==0) && (pitch == dst_rect.w * sizeof(Uint32)),
{ SDL_FreeSurface(tmp_surf);
- SDL_UnlockTexture(gState->terrainSprite.t);
+ SDL_UnlockTexture(gUI->terrainSprite.t);
return 3;
},
SDL_LOG_PRIORITY_CRITICAL,
@@ -261,27 +261,28 @@ int renderTerrainToTexture(SDL_Renderer *rend, gameState_t *gState) {
);
(void) SDL_memcpy(pixels, tmp_surf->pixels, dst_rect.h * pitch);
- SDL_UnlockTexture(gState->terrainSprite.t);
+ SDL_UnlockTexture(gUI->terrainSprite.t);
SDL_FreeSurface(tmp_surf);
-// SDL_DestroyTexture(gState->terrainSprite.t); //TODO mais pas ici !!
+// SDL_DestroyTexture(gUI->terrainSprite.t); //TODO mais pas ici !!
+ //TODO : faire le rendu de la minimap aussi
return 0;
}
-int renderSprites(SDL_Renderer *rend, gameState_t *gState) {
+int renderSprites(SDL_Renderer *rend, gameUI_t *gUI) {
int i, res;
SDL_Rect src,dst;
- renderItem_t *renderList = gState->renderList;
+ renderItem_t *renderList = gUI->renderList;
- for(i=0,res=0 ; i < gState->renderListSize && res==0 ; i++) {
+ for(i=0,res=0 ; i < gUI->renderListSize && res==0 ; i++) {
src = dst = renderList[i].sprite->size;
src.y = src.h * renderList[i].currframe;
if ( renderList[i].absolute ) {
dst.x = renderList[i].x;
} else {
- dst.x = renderList[i].x - gState->cameraX;
+ dst.x = renderList[i].x - gUI->cameraX;
}
dst.y = renderList[i].y;
res=SDL_RenderCopy(rend, renderList[i].sprite->t, &src, &dst);