Wireframe display mode
This commit is contained in:
@@ -701,6 +701,14 @@ duk_ret_t duk_cmd(duk_context *duk) {
|
||||
case 66:
|
||||
dukext2paths(duk_to_string(duk, 1));
|
||||
return 1;
|
||||
|
||||
case 67:
|
||||
opengl_rendermode(LIT);
|
||||
break;
|
||||
|
||||
case 68:
|
||||
opengl_rendermode(WIREFRAME);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -12,9 +12,10 @@
|
||||
#include "datastream.h"
|
||||
#include "nuke.h"
|
||||
|
||||
int renderMode = 0;
|
||||
int renderMode = LIT;
|
||||
|
||||
struct shader *spriteShader = NULL;
|
||||
struct shader *wireframeShader = NULL;
|
||||
struct shader *animSpriteShader = NULL;
|
||||
static struct shader *textShader;
|
||||
|
||||
@@ -64,6 +65,11 @@ void debug_draw_phys(int draw) {
|
||||
debugDrawPhysics = draw;
|
||||
}
|
||||
|
||||
void opengl_rendermode(enum RenderMode r)
|
||||
{
|
||||
renderMode = r;
|
||||
}
|
||||
|
||||
void openglInit()
|
||||
{
|
||||
if (!mainwin) {
|
||||
@@ -73,6 +79,7 @@ void openglInit()
|
||||
|
||||
////// MAKE SHADERS
|
||||
spriteShader = MakeShader("spritevert.glsl", "spritefrag.glsl");
|
||||
wireframeShader = MakeShader("spritevert.glsl", "spritewireframefrag.glsl");
|
||||
animSpriteShader = MakeShader("animspritevert.glsl", "animspritefrag.glsl");
|
||||
textShader = MakeShader("textvert.glsl", "textfrag.glsl");
|
||||
|
||||
@@ -117,8 +124,8 @@ void add_zoom(float val) { zoom = val; }
|
||||
|
||||
void openglRender(struct window *window)
|
||||
{
|
||||
|
||||
glCullFace(GL_BACK);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
//////////// 2D projection
|
||||
@@ -143,14 +150,25 @@ void openglRender(struct window *window)
|
||||
glBufferSubData(GL_UNIFORM_BUFFER, 0, 64, projection);
|
||||
|
||||
|
||||
/* Game sprites */
|
||||
switch (renderMode) {
|
||||
case LIT:
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
shader_use(spriteShader);
|
||||
break;
|
||||
|
||||
case WIREFRAME:
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
shader_use(wireframeShader);
|
||||
break;
|
||||
};
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
///// Sprites
|
||||
glDepthFunc(GL_LESS);
|
||||
shader_use(spriteShader);
|
||||
sprite_draw_all();
|
||||
|
||||
|
||||
|
||||
/* UI Elements & Debug elements */
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
//// DEBUG
|
||||
if (debugDrawPhysics)
|
||||
|
||||
@@ -40,6 +40,7 @@ enum RenderMode {
|
||||
|
||||
void openglInit();
|
||||
void openglRender(struct window *window);
|
||||
void opengl_rendermode(enum RenderMode r);
|
||||
|
||||
void openglInit3d(struct window *window);
|
||||
void openglRender3d(struct window *window, struct mCamera *camera);
|
||||
|
||||
Reference in New Issue
Block a user