- fixed a few things, but still not working.

This commit is contained in:
Christoph Oelckers 2018-03-28 23:42:06 +02:00
parent b194f2c466
commit 3ca3193379
3 changed files with 10 additions and 10 deletions

View file

@ -472,16 +472,14 @@ public:
void BindVBO() override void BindVBO() override
{ {
// set up the vertex buffer for drawing the 2D elements. // set up the vertex buffer for drawing the 2D elements.
glGenBuffers(1, &vbo_id);
glGenBuffers(1, &ibo_id);
glBindBuffer(GL_ARRAY_BUFFER, vbo_id); glBindBuffer(GL_ARRAY_BUFFER, vbo_id);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo_id);
glVertexAttribPointer(VATTR_VERTEX, 3, GL_FLOAT, false, sizeof(FSimpleVertex), &TDiO->x); glVertexAttribPointer(VATTR_VERTEX, 3, GL_FLOAT, false, sizeof(FSimpleVertex), &TDiO->x);
glVertexAttribPointer(VATTR_TEXCOORD, 2, GL_FLOAT, false, sizeof(FSimpleVertex), &TDiO->u); glVertexAttribPointer(VATTR_TEXCOORD, 2, GL_FLOAT, false, sizeof(FSimpleVertex), &TDiO->u);
glVertexAttribPointer(VATTR_COLOR, 4, GL_UNSIGNED_BYTE, true, sizeof(FSimpleVertex), &TDiO->color0); glVertexAttribPointer(VATTR_COLOR, 4, GL_UNSIGNED_BYTE, true, sizeof(FSimpleVertex), &TDiO->color0);
glEnableVertexAttribArray(VATTR_VERTEX); glEnableVertexAttribArray(VATTR_VERTEX);
glEnableVertexAttribArray(VATTR_TEXCOORD); glEnableVertexAttribArray(VATTR_TEXCOORD);
glEnableVertexAttribArray(VATTR_COLOR); //glEnableVertexAttribArray(VATTR_COLOR);
glDisableVertexAttribArray(VATTR_VERTEX2); glDisableVertexAttribArray(VATTR_VERTEX2);
glDisableVertexAttribArray(VATTR_NORMAL); glDisableVertexAttribArray(VATTR_NORMAL);
} }
@ -506,6 +504,7 @@ void FGLRenderer::Draw2D(F2DDrawer *drawer)
{ {
// Change from BGRA to RGBA // Change from BGRA to RGBA
std::swap(v.color0.r, v.color0.b); std::swap(v.color0.r, v.color0.b);
v.color0 = 0xffffffff;
} }
auto vb = new F2DVertexBuffer; auto vb = new F2DVertexBuffer;
vb->UploadData(&vertices[0], vertices.Size(), &indices[0], indices.Size()); vb->UploadData(&vertices[0], vertices.Size(), &indices[0], indices.Size());
@ -514,7 +513,6 @@ void FGLRenderer::Draw2D(F2DDrawer *drawer)
for(auto &cmd : commands) for(auto &cmd : commands)
{ {
gl_RenderState.ResetColor(); // this is needed to reset the desaturation.
int tm, sb, db, be; int tm, sb, db, be;
// The texture mode being returned here cannot be used, because the higher level code // The texture mode being returned here cannot be used, because the higher level code
// already manipulated the data so that some cases will not be handled correctly. // already manipulated the data so that some cases will not be handled correctly.
@ -565,6 +563,7 @@ void FGLRenderer::Draw2D(F2DDrawer *drawer)
gl_RenderState.SetFixedColormap(CM_PLAIN2D); gl_RenderState.SetFixedColormap(CM_PLAIN2D);
} }
} }
gl_RenderState.SetColor(1, 1, 1, 1, cmd.mDesaturate);
gl_RenderState.AlphaFunc(GL_GEQUAL, 0.f); gl_RenderState.AlphaFunc(GL_GEQUAL, 0.f);
@ -584,26 +583,26 @@ void FGLRenderer::Draw2D(F2DDrawer *drawer)
gl_RenderState.EnableTexture(false); gl_RenderState.EnableTexture(false);
} }
gl_RenderState.Apply(); gl_RenderState.Apply();
glDrawElements(GL_TRIANGLES, cmd.mIndexCount, GL_UNSIGNED_INT, (const void *)(cmd.mIndexIndex * sizeof(unsigned int))); glDrawArrays(GL_TRIANGLE_STRIP, cmd.mVertIndex, 4);
//glDrawElements(GL_TRIANGLES, cmd.mIndexCount, GL_UNSIGNED_INT, (const void *)(cmd.mIndexIndex * sizeof(unsigned int)));
break; break;
case F2DDrawer::DrawTypeLines: case F2DDrawer::DrawTypeLines:
gl_RenderState.EnableTexture(false); gl_RenderState.EnableTexture(false);
gl_RenderState.Apply(); gl_RenderState.Apply();
glDrawArrays(GL_LINES, cmd.mVertIndex, cmd.mVertCount); glDrawArrays(GL_LINES, cmd.mVertIndex, cmd.mVertCount);
gl_RenderState.EnableTexture(true);
break; break;
case F2DDrawer::DrawTypePoints: case F2DDrawer::DrawTypePoints:
gl_RenderState.EnableTexture(false); gl_RenderState.EnableTexture(false);
gl_RenderState.Apply(); gl_RenderState.Apply();
glDrawArrays(GL_POINTS, cmd.mVertIndex, cmd.mVertCount); glDrawArrays(GL_POINTS, cmd.mVertIndex, cmd.mVertCount);
gl_RenderState.EnableTexture(true);
break; break;
} }
} }
glDisable(GL_SCISSOR_TEST); glDisable(GL_SCISSOR_TEST);
gl_RenderState.SetVertexBuffer(nullptr); gl_RenderState.SetVertexBuffer(nullptr);
gl_RenderState.EnableTexture(true);
delete vb; delete vb;
} }

View file

@ -46,7 +46,7 @@ public:
float u, v; float u, v;
PalEntry color0; PalEntry color0;
void Set(float xx, float zz, float yy) void Set(float xx, float yy, float zz)
{ {
x = xx; x = xx;
z = zz; z = zz;
@ -56,7 +56,7 @@ public:
color0 = 0; color0 = 0;
} }
void Set(double xx, double zz, double yy, double uu, double vv, PalEntry col) void Set(double xx, double yy, double zz, double uu, double vv, PalEntry col)
{ {
x = (float)xx; x = (float)xx;
z = (float)zz; z = (float)zz;

View file

@ -193,6 +193,7 @@ DEFINE_ACTION_FUNCTION(_Screen, DrawTexture)
void DFrameBuffer::DrawTextureParms(FTexture *img, DrawParms &parms) void DFrameBuffer::DrawTextureParms(FTexture *img, DrawParms &parms)
{ {
m2DDrawer.AddTexture(img, parms);
} }
//========================================================================== //==========================================================================