Procházet zdrojové kódy

debug: minor updates to the debug quad code.

legacy
Sam Hocevar sam před 13 roky
rodič
revize
9bea12367d
1 změnil soubory, kde provedl 15 přidání a 9 odebrání
  1. +15
    -9
      src/debug/quad.cpp

+ 15
- 9
src/debug/quad.cpp Zobrazit soubor

@@ -126,10 +126,10 @@ void DebugQuad::TickDraw(float deltams)

/* Prepare our quad coordinates */
vec2i const layout(4, 3);
data->step = vec2(2.0f, -2.0f) / (3 * layout + vec2i(1));
data->step = vec2(2.0f, -2.0f) / (4 * layout + vec2i(1));
data->orig = vec2(-1.0f, 1.0f) + data->step;
data->aa = data->orig;
data->bb = data->orig + 2.0f * data->step;
data->bb = data->orig + 3.0f * data->step;

/* Generate a few random numbers */
float f1 = 0.5f + 0.5f * sinf(0.00034f * data->time);
@@ -199,23 +199,29 @@ void DebugQuad::TickDraw(float deltams)
/*
* Test #3: glBegin + texture
*
* Renders an animated black-and-white distorted checkerboard.
* Renders a multicoloured square with varying colors multiplied with an
* animated distorted checkerboard.
*/
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, data->texture[0]);
glColor3f(1.0f, 1.0f, 1.0f);
glBegin(GL_TRIANGLES);
glColor3f(f1, f2, f3);
glTexCoord2f(f1, f3);
glVertex3f(data->aa.x, data->bb.y, 0.0f);
glColor3f(f4, f2, f1);
glTexCoord2f(f3, f2);
glVertex3f(data->bb.x, data->bb.y, 0.0f);
glColor3f(f3, f1, f4);
glTexCoord2f(f2, f4);
glVertex3f(data->bb.x, data->aa.y, 0.0f);

glTexCoord2f(f2, f4);
glVertex3f(data->bb.x, data->aa.y, 0.0f);
glColor3f(f4, f3, f2);
glTexCoord2f(f4, f1);
glVertex3f(data->aa.x, data->aa.y, 0.0f);
glColor3f(f1, f2, f3);
glTexCoord2f(f1, f3);
glVertex3f(data->aa.x, data->bb.y, 0.0f);
glEnd();
@@ -635,7 +641,7 @@ void DebugQuad::TickDraw(float deltams)
glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors,
GL_DYNAMIC_DRAW);
glVertexAttribPointer(attr[1], 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(attr[2]);
glEnableVertexAttribArray(attr[1]);

glBindBuffer(GL_ARRAY_BUFFER, *buffer++);
glBufferData(GL_ARRAY_BUFFER, sizeof(texcoords), texcoords,
@@ -693,14 +699,14 @@ void DebugQuad::ResetState()

void DebugQuad::Advance()
{
data->aa.x += 3.0f * data->step.x;
data->bb.x += 3.0f * data->step.x;
data->aa.x += 4.0f * data->step.x;
data->bb.x += 4.0f * data->step.x;
if (data->bb.x > 1.0f)
{
data->aa.x = data->orig.x;
data->bb.x = data->orig.x + 2.0f * data->step.x;
data->aa.y += 3.0f * data->step.y;
data->bb.y += 3.0f * data->step.y;
data->bb.x = data->orig.x + 3.0f * data->step.x;
data->aa.y += 4.0f * data->step.y;
data->bb.y += 4.0f * data->step.y;
}
}



Načítá se…
Zrušit
Uložit