Browse Source

add window title and dimension options to initRenderState

remotes/bxxa/master
cinnaboot 4 years ago
parent
commit
11fdcb892a
  1. 2
      examples/main.cpp
  2. 8
      include/tangerine.h
  3. 16
      src/tangerine.cpp

2
examples/main.cpp

@ -329,7 +329,7 @@ render_cb_pre(RenderState* rs)
int int
main() main()
{ {
RenderState* rs = initRenderState(); RenderState* rs = initRenderState("tangerine example", uvec2(1600, 900));
if (rs) { if (rs) {
if (!loadScene(rs)) { if (!loadScene(rs)) {

8
include/tangerine.h

@ -84,6 +84,8 @@
#include "types.h" #include "types.h"
#include "util.h" #include "util.h"
using glm::uvec2;
struct SDLHandles struct SDLHandles
{ {
@ -189,6 +191,8 @@ struct RenderState
}; };
#define DEFAULT_WIDTH 1280
#define DEFAULT_HEIGHT 720
#define DEFAULT_MODEL_COUNT 256 #define DEFAULT_MODEL_COUNT 256
#define DEFAULT_TEXTURE_COUNT 64 #define DEFAULT_TEXTURE_COUNT 64
#define DEFAULT_SHADER_COUNT 64 #define DEFAULT_SHADER_COUNT 64
@ -197,7 +201,9 @@ struct RenderState
#define DEFAULT_CLEAR_COLOR { 0.2, 0.2, 0.2, 1 } #define DEFAULT_CLEAR_COLOR { 0.2, 0.2, 0.2, 1 }
#define DEFAULT_AMBIENT_COLOR { 0.1, 0.1, 0.1, 1 } #define DEFAULT_AMBIENT_COLOR { 0.1, 0.1, 0.1, 1 }
#define DEFAULT_MAX_LIGHTS 32 // NOTE: needs to match NUM_LIGHTS in shaders #define DEFAULT_MAX_LIGHTS 32 // NOTE: needs to match NUM_LIGHTS in shaders
RenderState* initRenderState(GLClearColor clear_col = DEFAULT_CLEAR_COLOR, RenderState* initRenderState(const char* window_title = "tangerine",
uvec2 window_dims = uvec2(DEFAULT_WIDTH, DEFAULT_HEIGHT),
GLClearColor clear_col = DEFAULT_CLEAR_COLOR,
glm::vec4 ambient_color = DEFAULT_AMBIENT_COLOR, glm::vec4 ambient_color = DEFAULT_AMBIENT_COLOR,
u32 max_models = DEFAULT_MODEL_COUNT, u32 max_models = DEFAULT_MODEL_COUNT,
u32 max_textures = DEFAULT_TEXTURE_COUNT, u32 max_textures = DEFAULT_TEXTURE_COUNT,

16
src/tangerine.cpp

@ -12,7 +12,7 @@ using glm::vec4;
// forward declarations // forward declarations
bool initGraphics(SDLHandles* handles); bool initGraphics(SDLHandles* handles, const char* title, uvec2 dims);
LightsBuffer* initLights(RenderState* rs, u32 max_lights, vec4 ambient_color); LightsBuffer* initLights(RenderState* rs, u32 max_lights, vec4 ambient_color);
@ -20,7 +20,9 @@ LightsBuffer* initLights(RenderState* rs, u32 max_lights, vec4 ambient_color);
// interface // interface
RenderState* RenderState*
initRenderState(GLClearColor clear_col, initRenderState(const char* window_title,
uvec2 window_dims,
GLClearColor clear_col,
vec4 ambient_color, vec4 ambient_color,
u32 max_models, u32 max_models,
u32 max_textures, u32 max_textures,
@ -46,7 +48,7 @@ initRenderState(GLClearColor clear_col,
rs->render_groups = ARENA_ALLOC(rs->rg_arena, RenderGroup, rs->render_groups = ARENA_ALLOC(rs->rg_arena, RenderGroup,
DEFAULT_RENDER_GROUP_COUNT); DEFAULT_RENDER_GROUP_COUNT);
if (!initGraphics(&rs->handles)) { if (!initGraphics(&rs->handles, window_title, window_dims)) {
LOGF(Error, "error initializing renderer\n"); LOGF(Error, "error initializing renderer\n");
return nullptr; return nullptr;
} }
@ -267,14 +269,14 @@ getVertexAttribByType(ShaderProgram* shader, MeshBufferType buf_type)
// internal // internal
bool bool
initGraphics(SDLHandles* handles) initGraphics(SDLHandles* handles, const char* title, uvec2 dims)
{ {
handles->window = SDL_CreateWindow( handles->window = SDL_CreateWindow(
"shader_testing", title,
SDL_WINDOWPOS_CENTERED_DISPLAY(0), SDL_WINDOWPOS_CENTERED_DISPLAY(0),
SDL_WINDOWPOS_CENTERED_DISPLAY(0), SDL_WINDOWPOS_CENTERED_DISPLAY(0),
1280, dims.x,
720, dims.y,
SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE); SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE);
if (SDL_Init(SDL_INIT_VIDEO) != 0) { if (SDL_Init(SDL_INIT_VIDEO) != 0) {

Loading…
Cancel
Save