[Change] Code cleanup.
This commit is contained in:
parent
d736e9a6a1
commit
090d9535c4
173
src/opengl.c
173
src/opengl.c
@ -320,13 +320,17 @@ SDL_Surface* gl_prepareSurface(SDL_Surface* surface) {
|
|||||||
return surface;
|
return surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Return the texture id.
|
* @brief Load a surface into an opengl texture.
|
||||||
* Stores real sizes in rw/rh (from POT padding).
|
* @param surface Surface to load into a texture.
|
||||||
|
* @param[out] rw Real width of the texture.
|
||||||
|
* @param[out] rh Real height of the texture.
|
||||||
|
* @return The opengl texture id.
|
||||||
*/
|
*/
|
||||||
static GLuint gl_loadSurface(SDL_Surface* surface, int *rw, int* rh) {
|
static GLuint gl_loadSurface(SDL_Surface* surface, int *rw, int* rh) {
|
||||||
GLuint texture;
|
GLuint texture;
|
||||||
|
|
||||||
|
/* Prepare the surface. */
|
||||||
surface = gl_prepareSurface(surface);
|
surface = gl_prepareSurface(surface);
|
||||||
if(rw != NULL) (*rw) = surface->w;
|
if(rw != NULL) (*rw) = surface->w;
|
||||||
if(rh != NULL) (*rh) = surface->h;
|
if(rh != NULL) (*rh) = surface->h;
|
||||||
@ -337,8 +341,13 @@ static GLuint gl_loadSurface(SDL_Surface* surface, int *rw, int* rh) {
|
|||||||
|
|
||||||
/* Filtering, LINEAR is better for scaling, nearest looks nicer, LINEAR */
|
/* Filtering, LINEAR is better for scaling, nearest looks nicer, LINEAR */
|
||||||
/* also seems to create a bit of artifacts around the edges. */
|
/* also seems to create a bit of artifacts around the edges. */
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
if(gl_screen.scale != 1.) {
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||||
|
} else {
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
}
|
||||||
|
|
||||||
/* Always wrap just in case. */
|
/* Always wrap just in case. */
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||||
@ -358,7 +367,11 @@ static GLuint gl_loadSurface(SDL_Surface* surface, int *rw, int* rh) {
|
|||||||
return texture;
|
return texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load the SDL_Surface to an openGL texture. */
|
/**
|
||||||
|
* @brief Load the SDL_Surface to a glTexture.
|
||||||
|
* @param surface Surface to load.
|
||||||
|
* @return The glTexture for surface.
|
||||||
|
*/
|
||||||
glTexture* gl_loadImage(SDL_Surface* surface) {
|
glTexture* gl_loadImage(SDL_Surface* surface) {
|
||||||
int rw, rh;
|
int rw, rh;
|
||||||
|
|
||||||
@ -382,7 +395,13 @@ glTexture* gl_loadImage(SDL_Surface* surface) {
|
|||||||
return texture;
|
return texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load the image if not already done. */
|
/**
|
||||||
|
* @brief Load an image as a texture.
|
||||||
|
*
|
||||||
|
* May not necessarily load the image but use one of it's already open.
|
||||||
|
* @param path Image to load.
|
||||||
|
* @return Texture loaded from image.
|
||||||
|
*/
|
||||||
glTexture* gl_newImage(const char* path) {
|
glTexture* gl_newImage(const char* path) {
|
||||||
glTexList* cur, *last;
|
glTexList* cur, *last;
|
||||||
|
|
||||||
@ -414,11 +433,15 @@ glTexture* gl_newImage(const char* path) {
|
|||||||
return cur->tex;
|
return cur->tex;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load the image as an opengl texture directly. */
|
/**
|
||||||
|
* @brief Only loads the image, does not add to stack unlike gl_newImage.
|
||||||
|
* @param path Image to load.
|
||||||
|
* @return Texture loaded from image.
|
||||||
|
*/
|
||||||
static glTexture* gl_loadNewImage(const char* path) {
|
static glTexture* gl_loadNewImage(const char* path) {
|
||||||
SDL_Surface* tmp, *surface;
|
SDL_Surface* tmp, *surface;
|
||||||
glTexture* t;
|
glTexture* t;
|
||||||
uint8_t* trans = NULL;
|
uint8_t* trans;
|
||||||
uint32_t filesize;
|
uint32_t filesize;
|
||||||
char* buf;
|
char* buf;
|
||||||
|
|
||||||
@ -463,7 +486,13 @@ static glTexture* gl_loadNewImage(const char* path) {
|
|||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load the texture immediately, but also set is as a sprite. */
|
/**
|
||||||
|
* @brief Load the texture immediately, but also set it as a sprite.
|
||||||
|
* @param path Image to load.
|
||||||
|
* @param sx Number of X sprites in image.
|
||||||
|
* @param sy Number of Y sprites in image.
|
||||||
|
* @return Texture loaded.
|
||||||
|
*/
|
||||||
glTexture* gl_newSprite(const char* path, const int sx, const int sy) {
|
glTexture* gl_newSprite(const char* path, const int sx, const int sy) {
|
||||||
glTexture* texture;
|
glTexture* texture;
|
||||||
if((texture = gl_newImage(path)) == NULL)
|
if((texture = gl_newImage(path)) == NULL)
|
||||||
@ -480,7 +509,10 @@ glTexture* gl_newSprite(const char* path, const int sx, const int sy) {
|
|||||||
return texture;
|
return texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Free the texture. */
|
/**
|
||||||
|
* @brief Free a texture.
|
||||||
|
* @param texture Texture to free.
|
||||||
|
*/
|
||||||
void gl_freeTexture(glTexture* texture) {
|
void gl_freeTexture(glTexture* texture) {
|
||||||
glTexList* cur, *last;
|
glTexList* cur, *last;
|
||||||
|
|
||||||
@ -530,12 +562,27 @@ void gl_freeTexture(glTexture* texture) {
|
|||||||
gl_checkErr();
|
gl_checkErr();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return true if pixel at pos (x,y) is transparent. */
|
/**
|
||||||
|
* @brief Check to see if a pixel is transparent in a texture.
|
||||||
|
* @param t Texture to check for transparency.
|
||||||
|
* @param x X position of the pixel.
|
||||||
|
* @param y Y position of the pixel.
|
||||||
|
* @return 1 if the pixel is transparent or 0 if it isn't.
|
||||||
|
*/
|
||||||
int gl_isTrans(const glTexture* t, const int x, const int y) {
|
int gl_isTrans(const glTexture* t, const int x, const int y) {
|
||||||
return !(t->trans[(y*(int)(t->w)+x)/8] & (1<<((y*(int)(t->w)+x)%8)));
|
return !(t->trans[(y*(int)(t->w)+x)/8] & (1<<((y*(int)(t->w)+x)%8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set x and y to be the appropriate sprite for glTexture using dir. */
|
/**
|
||||||
|
* @brief Set x and y to be the appropriate sprite for glTexture using dir.
|
||||||
|
*
|
||||||
|
* Very slow, try to cache if possible, like the pilots do instead of using
|
||||||
|
* in O(n^2) or worse functions.
|
||||||
|
* @param[out] x X sprite to use.
|
||||||
|
* @param[out] y Y sprite to use.
|
||||||
|
* @param t Texture to get sprite from.
|
||||||
|
* @param dir Direction to get sprite from.
|
||||||
|
*/
|
||||||
void gl_getSpriteFromDir(int* x, int* y, const glTexture* t, const double dir) {
|
void gl_getSpriteFromDir(int* x, int* y, const glTexture* t, const double dir) {
|
||||||
int s, sx, sy;
|
int s, sx, sy;
|
||||||
|
|
||||||
@ -563,6 +610,15 @@ void gl_getSpriteFromDir(int* x, int* y, const glTexture* t, const double dir) {
|
|||||||
/* BLITTING! */
|
/* BLITTING! */
|
||||||
/* ================ */
|
/* ================ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Blits a texture.
|
||||||
|
* @param texture Texture to blit.
|
||||||
|
* @param x X position of the texture on the screen.
|
||||||
|
* @param y Y position of the texture on the screen.
|
||||||
|
* @param tx X position within the texture.
|
||||||
|
* @param ty Y position within the texture.
|
||||||
|
* @param c Colour to use (modifies texture colour).
|
||||||
|
*/
|
||||||
static void gl_blitTexture(const glTexture* texture,
|
static void gl_blitTexture(const glTexture* texture,
|
||||||
const double x, const double y,
|
const double x, const double y,
|
||||||
const double tx, const double ty, const glColour* c) {
|
const double tx, const double ty, const glColour* c) {
|
||||||
@ -598,7 +654,15 @@ static void gl_blitTexture(const glTexture* texture,
|
|||||||
gl_checkErr();
|
gl_checkErr();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Blit the sprite at given position. */
|
/**
|
||||||
|
* @brief Blits a sprite, position is relative to the player.
|
||||||
|
* @param texture Sprite to blit.
|
||||||
|
* @param bx X position of the texture relative to the player.
|
||||||
|
* @param by Y position of the texture relative to the player.
|
||||||
|
* @param sx X position of the sprite to use.
|
||||||
|
* @param sy Y position of the sprite to use.
|
||||||
|
* @param c Colour to use (modifies texture colour).
|
||||||
|
*/
|
||||||
void gl_blitSprite(const glTexture* sprite, const double bx, const double by,
|
void gl_blitSprite(const glTexture* sprite, const double bx, const double by,
|
||||||
const int sx, const int sy, const glColour* c) {
|
const int sx, const int sy, const glColour* c) {
|
||||||
|
|
||||||
@ -621,7 +685,15 @@ void gl_blitSprite(const glTexture* sprite, const double bx, const double by,
|
|||||||
gl_blitTexture(sprite, x, y, tx, ty, c);
|
gl_blitTexture(sprite, x, y, tx, ty, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Blit the sprite at pos (blits absolute position). */
|
/**
|
||||||
|
* @brief Blits a sprite, position is in absolute screen coordinates.
|
||||||
|
* @param texture Sprite to blit.
|
||||||
|
* @param bx X position of the texture in screen coordinates.
|
||||||
|
* @param by Y position of the texture in screen coordinates.
|
||||||
|
* @param sx X position of the sprite to use.
|
||||||
|
* @param sy Y position of the sprite to use.
|
||||||
|
* @param c Colour to use (modifies texture colour).
|
||||||
|
*/
|
||||||
void gl_blitStaticSprite(const glTexture* sprite, const double bx,
|
void gl_blitStaticSprite(const glTexture* sprite, const double bx,
|
||||||
const double by, const int sx, const int sy, const glColour* c) {
|
const double by, const int sx, const int sy, const glColour* c) {
|
||||||
|
|
||||||
@ -638,7 +710,14 @@ void gl_blitStaticSprite(const glTexture* sprite, const double bx,
|
|||||||
gl_blitTexture(sprite, x, y, tx, ty, c);
|
gl_blitTexture(sprite, x, y, tx, ty, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Like gl_blitStatic but scales to size. */
|
/**
|
||||||
|
* @brief Blit a texture scaling it.
|
||||||
|
* @param bx X position of the texture in screen coordinates.
|
||||||
|
* @param by Y position of the texture in screen coordinates.
|
||||||
|
* @param bw Width to scale to.
|
||||||
|
* @param bh Height to scale to.
|
||||||
|
* @param c Colour to use (modifies texture colour).
|
||||||
|
*/
|
||||||
void gl_blitScale(const glTexture* texture,
|
void gl_blitScale(const glTexture* texture,
|
||||||
const double bx, const double by,
|
const double bx, const double by,
|
||||||
const double bw, const double bh, const glColour* c) {
|
const double bw, const double bh, const glColour* c) {
|
||||||
@ -681,7 +760,13 @@ void gl_blitScale(const glTexture* texture,
|
|||||||
gl_checkErr();
|
gl_checkErr();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Just straight out blit the thing at position. */
|
/**
|
||||||
|
* @brief Blits a texture to a position
|
||||||
|
* @param texture Texture to blit.
|
||||||
|
* @param bx X position of the texture in screen coordinates.
|
||||||
|
* @param by Y position of the texture in screen coordinates.
|
||||||
|
* @param c Colour to use (modifies texture colour).
|
||||||
|
*/
|
||||||
void gl_blitStatic(const glTexture* texture, const double bx, const double by,
|
void gl_blitStatic(const glTexture* texture, const double bx, const double by,
|
||||||
const glColour* c) {
|
const glColour* c) {
|
||||||
double x, y;
|
double x, y;
|
||||||
@ -694,12 +779,23 @@ void gl_blitStatic(const glTexture* texture, const double bx, const double by,
|
|||||||
gl_blitTexture(texture, x, y, 0, 0, c);
|
gl_blitTexture(texture, x, y, 0, 0, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bind our precious camera to a vector. */
|
/**
|
||||||
void gl_bindCamera(const Vec2* pos) {
|
* @brief Bind the camera to a vector.
|
||||||
gl_camera = (Vec2*)pos;
|
*
|
||||||
|
* All stuff displayed with relative functions will be affected by the camera's
|
||||||
|
* position. Does not affect stuff in screen coordinates.
|
||||||
|
* @param pos Vector to use as camera.
|
||||||
|
*/
|
||||||
|
void gl_bindCamera(Vec2* pos) {
|
||||||
|
gl_camera = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Draw circles. */
|
/**
|
||||||
|
* @brief Draws a circle.
|
||||||
|
* @param cx X position of the center in screen coordinates.
|
||||||
|
* @param cy Y position of the center in screen coordinates.
|
||||||
|
* @param r Radius of the circle.
|
||||||
|
*/
|
||||||
void gl_drawCircle(const double cx, const double cy, const double r) {
|
void gl_drawCircle(const double cx, const double cy, const double r) {
|
||||||
double x, y, p;
|
double x, y, p;
|
||||||
|
|
||||||
@ -746,11 +842,23 @@ void gl_drawCircle(const double cx, const double cy, const double r) {
|
|||||||
gl_checkErr();
|
gl_checkErr();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Draw a cirlce in a rect. */
|
/**
|
||||||
|
* @brief Only displays the pixel if it's in the screen.
|
||||||
|
*/
|
||||||
#define PIXEL(x,y) \
|
#define PIXEL(x,y) \
|
||||||
if((x>rx) && (y>ry) && (x<rxw) && (y<ryh)) \
|
if((x>rx) && (y>ry) && (x<rxw) && (y<ryh)) \
|
||||||
glVertex2d(x,y)
|
glVertex2d(x,y)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Draw a circle in a rectangle.
|
||||||
|
* @param cx X position of the center in screen coordinates.
|
||||||
|
* @param cy Y position of the center in screen coordinates.
|
||||||
|
* @param r Radius of the circle.
|
||||||
|
* @param rx X position of the rectangle limiting the circle in screen coords.
|
||||||
|
* @param ry Y position of the rectangle limiting the circle in screen coords.
|
||||||
|
* @param rw Width of the limiting rectangle.
|
||||||
|
* @param rh Height of the limiting rectangle.
|
||||||
|
*/
|
||||||
void gl_drawCircleInRect(const double cx, const double cy, const double r,
|
void gl_drawCircleInRect(const double cx, const double cy, const double r,
|
||||||
const double rx, const double ry, const double rw, const double rh) {
|
const double rx, const double ry, const double rw, const double rh) {
|
||||||
|
|
||||||
@ -975,7 +1083,7 @@ int gl_init(void) {
|
|||||||
" going to try to create it anyway...",
|
" going to try to create it anyway...",
|
||||||
SCREEN_W, SCREEN_H, gl_screen.depth);
|
SCREEN_W, SCREEN_H, gl_screen.depth);
|
||||||
if(depth != gl_screen.depth)
|
if(depth != gl_screen.depth)
|
||||||
LOG("Depth: %d bpp unavailable, will use %d bpp", gl_screen.depth, depth);
|
DEBUG("Depth: %d bpp unavailable, will use %d bpp", gl_screen.depth, depth);
|
||||||
|
|
||||||
gl_screen.depth = depth;
|
gl_screen.depth = depth;
|
||||||
|
|
||||||
@ -1001,6 +1109,7 @@ int gl_init(void) {
|
|||||||
SDL_GL_GetAttribute(SDL_GL_DOUBLEBUFFER, &doublebuf);
|
SDL_GL_GetAttribute(SDL_GL_DOUBLEBUFFER, &doublebuf);
|
||||||
SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &fsaa);
|
SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &fsaa);
|
||||||
if(doublebuf) gl_screen.flags |= OPENGL_DOUBLEBUF;
|
if(doublebuf) gl_screen.flags |= OPENGL_DOUBLEBUF;
|
||||||
|
/* Calculate real depth. */
|
||||||
gl_screen.depth = gl_screen.r + gl_screen.g + gl_screen.b + gl_screen.a;
|
gl_screen.depth = gl_screen.r + gl_screen.g + gl_screen.b + gl_screen.a;
|
||||||
|
|
||||||
/* Get info about some extensions. */
|
/* Get info about some extensions. */
|
||||||
@ -1038,29 +1147,35 @@ int gl_init(void) {
|
|||||||
/* Some openGL options. */
|
/* Some openGL options. */
|
||||||
glClearColor(0., 0., 0., 1.);
|
glClearColor(0., 0., 0., 1.);
|
||||||
|
|
||||||
/* Enable/Disable. */
|
/* Set default opengl state. */
|
||||||
glDisable(GL_DEPTH_TEST); /* Set for doing 2D shidazles. */
|
glDisable(GL_DEPTH_TEST); /* Set for doing 2D shidazles. */
|
||||||
/*glEnable(GL_TEXTURE_2D); // Don't enable globally, it will break non-texture blits. */
|
/*glEnable(GL_TEXTURE_2D); // Don't enable globally, it will break non-texture blits. */
|
||||||
glDisable(GL_LIGHTING); /* No lighting, it is done when rendered. */
|
glDisable(GL_LIGHTING); /* No lighting, it is done when rendered. */
|
||||||
glEnable(GL_BLEND); /* Alpha blending ftw. */
|
glEnable(GL_BLEND); /* Alpha blending ftw. */
|
||||||
|
|
||||||
/* Models. */
|
/* Set the blending/shading model to use. */
|
||||||
glShadeModel(GL_FLAT); /* Default shade model. Functions should keep this when done.. */
|
glShadeModel(GL_FLAT); /* Default shade model. Functions should keep this when done.. */
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* Good blend model. */
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* Good blend model. */
|
||||||
|
|
||||||
/* Set up the proper viewport to use. */
|
/* Set up the proper viewport to use. */
|
||||||
gl_screen.rw = SCREEN_W;
|
gl_screen.rw = SCREEN_W;
|
||||||
gl_screen.rh = SCREEN_H;
|
gl_screen.rh = SCREEN_H;
|
||||||
|
gl_screen.scale = 1.;
|
||||||
if((SCREEN_W < 640) && (SCREEN_W <= SCREEN_H)) {
|
if((SCREEN_W < 640) && (SCREEN_W <= SCREEN_H)) {
|
||||||
|
gl_screen.scale = (double)gl_screen.w / 640.;
|
||||||
|
/* Must keep the proportion the same for the screen. */
|
||||||
gl_screen.w = (gl_screen.w * 640) / SCREEN_H;
|
gl_screen.w = (gl_screen.w * 640) / SCREEN_H;
|
||||||
gl_screen.rw = (gl_screen.rw * SCREEN_H) / 640;
|
gl_screen.rw = (gl_screen.rw * SCREEN_H) / 640;
|
||||||
gl_screen.h = 640;
|
gl_screen.h = 640;
|
||||||
}
|
}
|
||||||
else if((SCREEN_W < 640) && (SCREEN_W >= SCREEN_H)) {
|
else if((SCREEN_W < 640) && (SCREEN_W >= SCREEN_H)) {
|
||||||
|
gl_screen.scale = (double)gl_screen.h / 640.;
|
||||||
|
/* Must keep the proportion the same for the screen. */
|
||||||
gl_screen.w = (gl_screen.w * 640) / SCREEN_H;
|
gl_screen.w = (gl_screen.w * 640) / SCREEN_H;
|
||||||
gl_screen.rw = (gl_screen.rw * SCREEN_H) / 640;
|
gl_screen.rw = (gl_screen.rw * SCREEN_H) / 640;
|
||||||
gl_screen.h = 640;
|
gl_screen.h = 640;
|
||||||
}
|
}
|
||||||
|
/* Handle setting the default viewport. */
|
||||||
gl_defViewport();
|
gl_defViewport();
|
||||||
|
|
||||||
/* Finishing touches. */
|
/* Finishing touches. */
|
||||||
@ -1070,7 +1185,9 @@ int gl_init(void) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reset viewport to default. */
|
/**
|
||||||
|
* @brief Reset viewport to default.
|
||||||
|
*/
|
||||||
void gl_defViewport(void) {
|
void gl_defViewport(void) {
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
@ -1081,8 +1198,8 @@ void gl_defViewport(void) {
|
|||||||
-1., /* Near. */
|
-1., /* Near. */
|
||||||
1.); /* Far. */
|
1.); /* Far. */
|
||||||
/* Take into account possible scaling. */
|
/* Take into account possible scaling. */
|
||||||
glScaled((double)gl_screen.w / (double)gl_screen.rw,
|
if(gl_screen.scale != 1.)
|
||||||
(double)gl_screen.h / (double)gl_screen.rh, 1.);
|
glScaled(gl_screen.scale, gl_screen.scale, 1.);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,6 +42,7 @@ typedef struct glInfo_ {
|
|||||||
int h; /**< Window viewport height. */
|
int h; /**< Window viewport height. */
|
||||||
int rw; /**< Real window width. */
|
int rw; /**< Real window width. */
|
||||||
int rh; /**< Real window height. */
|
int rh; /**< Real window height. */
|
||||||
|
double scale; /**< Scale factor. */
|
||||||
int depth; /**< Depth in bpp. */
|
int depth; /**< Depth in bpp. */
|
||||||
int r; /**< Amount of red bits. */
|
int r; /**< Amount of red bits. */
|
||||||
int g; /**< Amount of green bits. */
|
int g; /**< Amount of green bits. */
|
||||||
@ -117,7 +118,7 @@ void gl_blitStatic(const glTexture* texture, const double bx, const double by,
|
|||||||
const glColour* c);
|
const glColour* c);
|
||||||
|
|
||||||
/* Bind the camera to a vector. */
|
/* Bind the camera to a vector. */
|
||||||
void gl_bindCamera(const Vec2* pos);
|
void gl_bindCamera(Vec2* pos);
|
||||||
|
|
||||||
/* Circle drawing. */
|
/* Circle drawing. */
|
||||||
void gl_drawCircle(const double x, const double y, const double r);
|
void gl_drawCircle(const double x, const double y, const double r);
|
||||||
|
Loading…
Reference in New Issue
Block a user