Prepare for texture streaming and locking.
The intention is to static stream the gui areas into one big texture.
This commit is contained in:
parent
9d7669fd35
commit
2122300f6e
|
@ -20,6 +20,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <physfs.h>
|
#include <physfs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
#include "texture.h"
|
#include "texture.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "io_util.h"
|
#include "io_util.h"
|
||||||
|
@ -34,9 +35,40 @@ texture_create(void)
|
||||||
t->font = NULL;
|
t->font = NULL;
|
||||||
t->lastAccess = SDL_GetTicks();
|
t->lastAccess = SDL_GetTicks();
|
||||||
t->path = "";
|
t->path = "";
|
||||||
|
t->textureAccessType = SDL_TEXTUREACCESS_STATIC;
|
||||||
|
t->locked = false;
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
texture_create_blank(Texture *t,
|
||||||
|
SDL_TextureAccess access,
|
||||||
|
SDL_Renderer *renderer)
|
||||||
|
{
|
||||||
|
t->texture = SDL_CreateTexture(renderer,
|
||||||
|
SDL_PIXELFORMAT_RGBA8888,
|
||||||
|
access,
|
||||||
|
t->dim.width,
|
||||||
|
t->dim.height);
|
||||||
|
t->textureAccessType = access;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
texture_lock(Texture *t, SDL_Rect *rect, void **pixels, int *pitch)
|
||||||
|
{
|
||||||
|
assert (!t->locked);
|
||||||
|
t->locked = true;
|
||||||
|
SDL_LockTexture(t->texture, rect, pixels, pitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
texture_unlock(Texture *t)
|
||||||
|
{
|
||||||
|
assert (t->locked);
|
||||||
|
t->locked = false;
|
||||||
|
SDL_UnlockTexture(t->texture);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
texture_load_from_file(Texture *texture,
|
texture_load_from_file(Texture *texture,
|
||||||
const char *path,
|
const char *path,
|
||||||
|
|
|
@ -31,11 +31,24 @@ typedef struct {
|
||||||
Dimension dim;
|
Dimension dim;
|
||||||
const char *path;
|
const char *path;
|
||||||
unsigned long lastAccess;
|
unsigned long lastAccess;
|
||||||
|
SDL_TextureAccess textureAccessType;
|
||||||
|
bool locked;
|
||||||
} Texture;
|
} Texture;
|
||||||
|
|
||||||
Texture*
|
Texture*
|
||||||
texture_create(void);
|
texture_create(void);
|
||||||
|
|
||||||
|
void
|
||||||
|
texture_create_blank(Texture *t,
|
||||||
|
SDL_TextureAccess,
|
||||||
|
SDL_Renderer*);
|
||||||
|
|
||||||
|
void
|
||||||
|
texture_lock(Texture*, SDL_Rect*, void **pixels, int *pitch);
|
||||||
|
|
||||||
|
void
|
||||||
|
texture_unlock(Texture*);
|
||||||
|
|
||||||
void
|
void
|
||||||
texture_load_from_file(Texture*, const char *path, SDL_Renderer*);
|
texture_load_from_file(Texture*, const char *path, SDL_Renderer*);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue