diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/cube_view.h | 106 | ||||
-rw-r--r-- | examples/pugl_embed_demo.c | 11 |
2 files changed, 90 insertions, 27 deletions
diff --git a/examples/cube_view.h b/examples/cube_view.h index 71ae88d..bdef1f1 100644 --- a/examples/cube_view.h +++ b/examples/cube_view.h @@ -30,35 +30,66 @@ static const float cubeStripVertices[] = { -1.0f, 1.0f, 1.0f, // Front top left - 1.0f, 1.0f, 1.0f, // Front top right + 1.0f, 1.0f, 1.0f, // Front top right -1.0f, -1.0f, 1.0f, // Front bottom left - 1.0f, -1.0f, 1.0f, // Front bottom right - 1.0f, -1.0f, -1.0f, // Back bottom right - 1.0f, 1.0f, 1.0f, // Front top right - 1.0f, 1.0f, -1.0f, // Back top right + 1.0f, -1.0f, 1.0f, // Front bottom right + 1.0f, -1.0f, -1.0f, // Back bottom right + 1.0f, 1.0f, 1.0f, // Front top right + 1.0f, 1.0f, -1.0f, // Back top right -1.0f, 1.0f, 1.0f, // Front top left -1.0f, 1.0f, -1.0f, // Back top left -1.0f, -1.0f, 1.0f, // Front bottom left -1.0f, -1.0f, -1.0f, // Back bottom left - 1.0f, -1.0f, -1.0f, // Back bottom right + 1.0f, -1.0f, -1.0f, // Back bottom right -1.0f, 1.0f, -1.0f, // Back top left - 1.0f, 1.0f, -1.0f // Back top right + 1.0f, 1.0f, -1.0f // Back top right +}; + +static const float cubeStripColorVertices[] = { + 0.25f, 0.75f, 0.75f, // Front top left + 0.75f, 0.75f, 0.75f, // Front top right + 0.25f, 0.25f, 0.75f, // Front bottom left + 0.75f, 0.25f, 0.75f, // Front bottom right + 0.75f, 0.25f, 0.25f, // Back bottom right + 0.75f, 0.75f, 0.75f, // Front top right + 0.75f, 0.75f, 0.25f, // Back top right + 0.25f, 0.75f, 0.75f, // Front top left + 0.25f, 0.75f, 0.25f, // Back top left + 0.25f, 0.25f, 0.75f, // Front bottom left + 0.25f, 0.25f, 0.25f, // Back bottom left + 0.75f, 0.25f, 0.25f, // Back bottom right + 0.25f, 0.75f, 0.25f, // Back top left + 0.75f, 0.75f, 0.25f // Back top right }; static const float cubeFrontLineLoop[] = { -1.0f, 1.0f, 1.0f, // Front top left - 1.0f, 1.0f, 1.0f, // Front top right - 1.0f, -1.0f, 1.0f, // Front bottom right + 1.0f, 1.0f, 1.0f, // Front top right + 1.0f, -1.0f, 1.0f, // Front bottom right -1.0f, -1.0f, 1.0f, // Front bottom left }; +static const float cubeFrontLineLoopColors[] = { + 0.25f, 0.75f, 0.75f, // Front top left + 0.75f, 0.75f, 0.75f, // Front top right + 0.75f, 0.25f, 0.75f, // Front bottom right + 0.25f, 0.25f, 0.75f, // Front bottom left +}; + static const float cubeBackLineLoop[] = { -1.0f, 1.0f, -1.0f, // Back top left - 1.0f, 1.0f, -1.0f, // Back top right - 1.0f, -1.0f, -1.0f, // Back bottom right + 1.0f, 1.0f, -1.0f, // Back top right + 1.0f, -1.0f, -1.0f, // Back bottom right -1.0f, -1.0f, -1.0f, // Back bottom left }; +static const float cubeBackLineLoopColors[] = { + 0.25f, 0.75f, 0.25f, // Back top left + 0.75f, 0.75f, 0.25f, // Back top right + 0.75f, 0.25f, 0.25f, // Back bottom right + 0.25f, 0.25f, 0.25f // Back bottom left +}; + static const float cubeSideLines[] = { -1.0f, 1.0f, 1.0f, // Front top left -1.0f, 1.0f, -1.0f, // Back top left @@ -73,6 +104,20 @@ static const float cubeSideLines[] = { 1.0f, -1.0f, -1.0f, // Back bottom right }; +static const float cubeSideLineColors[] = { + 0.25f, 0.75f, 0.75f, // Front top left + 0.25f, 0.75f, 0.25f, // Back top left + + 0.25f, 0.25f, 0.75f, // Front bottom left + 0.25f, 0.25f, 0.25f, // Back bottom left + + 0.75f, 0.75f, 0.75f, // Front top right + 0.75f, 0.75f, 0.25f, // Back top right + + 0.75f, 0.25f, 0.75f, // Front bottom right + 0.75f, 0.25f, 0.25f, // Back bottom right +}; + // clang-format on static inline void @@ -80,9 +125,12 @@ reshapeCube(const float width, const float height) { const float aspect = width / height; + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + glFrontFace(GL_CW); + glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); - glClearColor(0.2f, 0.2f, 0.2f, 1.0f); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -106,8 +154,12 @@ displayCube(PuglView* const view, glRotatef(xAngle, 0.0f, 1.0f, 0.0f); glRotatef(yAngle, 1.0f, 0.0f, 0.0f); - const float bg = entered ? 0.2f : 0.0f; - glClearColor(bg, bg, bg, 1.0f); + if (entered) { + glClearColor(0.13f, 0.14f, 0.14f, 1.0f); + } else { + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + } + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); if (puglHasFocus(view)) { @@ -115,25 +167,27 @@ displayCube(PuglView* const view, glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glVertexPointer(3, GL_FLOAT, 0, cubeStripVertices); - glColorPointer(3, GL_FLOAT, 0, cubeStripVertices); + glColorPointer(3, GL_FLOAT, 0, cubeStripColorVertices); glDrawArrays(GL_TRIANGLE_STRIP, 0, 14); glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); glColor3f(0.0f, 0.0f, 0.0f); } else { - glColor3f(1.0f, 1.0f, 1.0f); + // Draw cube wireframe + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + glVertexPointer(3, GL_FLOAT, 0, cubeFrontLineLoop); + glColorPointer(3, GL_FLOAT, 0, cubeFrontLineLoopColors); + glDrawArrays(GL_LINE_LOOP, 0, 4); + glVertexPointer(3, GL_FLOAT, 0, cubeBackLineLoop); + glColorPointer(3, GL_FLOAT, 0, cubeBackLineLoopColors); + glDrawArrays(GL_LINE_LOOP, 0, 4); + glVertexPointer(3, GL_FLOAT, 0, cubeSideLines); + glColorPointer(3, GL_FLOAT, 0, cubeSideLineColors); + glDrawArrays(GL_LINES, 0, 8); + glDisableClientState(GL_VERTEX_ARRAY); } - - // Draw cube wireframe - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, 0, cubeFrontLineLoop); - glDrawArrays(GL_LINE_LOOP, 0, 4); - glVertexPointer(3, GL_FLOAT, 0, cubeBackLineLoop); - glDrawArrays(GL_LINE_LOOP, 0, 4); - glVertexPointer(3, GL_FLOAT, 0, cubeSideLines); - glDrawArrays(GL_LINES, 0, 8); - glDisableClientState(GL_VERTEX_ARRAY); } #endif // EXAMPLES_CUBE_VIEW_H diff --git a/examples/pugl_embed_demo.c b/examples/pugl_embed_demo.c index 0e12ddb..79e7505 100644 --- a/examples/pugl_embed_demo.c +++ b/examples/pugl_embed_demo.c @@ -48,12 +48,21 @@ typedef struct { } PuglTestApp; // clang-format off + static const float backgroundVertices[] = { -1.0f, 1.0f, -1.0f, // Top left 1.0f, 1.0f, -1.0f, // Top right -1.0f, -1.0f, -1.0f, // Bottom left 1.0f, -1.0f, -1.0f, // Bottom right }; + +static const float backgroundColorVertices[] = { + 0.25f, 0.75f, 0.25f, // Top left + 0.75f, 0.75f, 0.25f, // Top right + 0.25f, 0.25f, 0.25f, // Bottom left + 0.75f, 0.25f, 0.25f, // Bottom right +}; + // clang-format on static PuglRect @@ -177,7 +186,7 @@ onParentEvent(PuglView* view, const PuglEvent* event) glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glVertexPointer(3, GL_FLOAT, 0, backgroundVertices); - glColorPointer(3, GL_FLOAT, 0, backgroundVertices); + glColorPointer(3, GL_FLOAT, 0, backgroundColorVertices); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); |