forked from mirrors/0ad
Replaces native GL types by backend format in vertex attributes in CShaderProgram.
This was SVN commit r26594.
This commit is contained in:
@@ -126,7 +126,8 @@ void CDebugRenderer::DrawLine(
|
||||
|
||||
#undef ADD
|
||||
|
||||
debugLineShader->VertexPointer(3, GL_FLOAT, 0, vertices.data());
|
||||
debugLineShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, vertices.data());
|
||||
debugLineShader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, vertices.size() / 3);
|
||||
|
||||
@@ -177,7 +178,8 @@ void CDebugRenderer::DrawCircle(const CVector3D& origin, const float radius, con
|
||||
|
||||
#undef ADD
|
||||
|
||||
debugCircleShader->VertexPointer(3, GL_FLOAT, 0, vertices.data());
|
||||
debugCircleShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, vertices.data());
|
||||
debugCircleShader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, vertices.size() / 3);
|
||||
|
||||
@@ -253,7 +255,8 @@ void CDebugRenderer::DrawCameraFrustum(const CCamera& camera, const CColor& colo
|
||||
ADD(intermediatePoints[3]);
|
||||
}
|
||||
|
||||
overlayShader->VertexPointer(3, GL_FLOAT, 0, vertices.data());
|
||||
overlayShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, vertices.data());
|
||||
overlayShader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, vertices.size() / 3);
|
||||
|
||||
@@ -271,7 +274,8 @@ void CDebugRenderer::DrawCameraFrustum(const CCamera& camera, const CColor& colo
|
||||
ADD(farPoints[nextI]);
|
||||
}
|
||||
|
||||
overlayShader->VertexPointer(3, GL_FLOAT, 0, vertices.data());
|
||||
overlayShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, vertices.data());
|
||||
overlayShader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, vertices.size() / 3);
|
||||
#undef ADD
|
||||
@@ -325,7 +329,8 @@ void CDebugRenderer::DrawBoundingBox(
|
||||
|
||||
#undef ADD_FACE
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, 3 * sizeof(float), data.data());
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 3 * sizeof(float), data.data());
|
||||
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, 6*6);
|
||||
@@ -371,7 +376,8 @@ void CDebugRenderer::DrawBrush(const CBrush& brush, const CColor& color, bool wi
|
||||
|
||||
#undef ADD_VERT
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, 3 * sizeof(float), data.data());
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 3 * sizeof(float), data.data());
|
||||
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, data.size() / 5);
|
||||
|
||||
@@ -201,9 +201,12 @@ void CDecalRData::RenderDecals(
|
||||
const GLsizei stride = sizeof(SDecalVertex);
|
||||
SDecalVertex* base = (SDecalVertex*)batch.vertices->m_Owner->Bind(deviceCommandContext);
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base->m_Position[0]);
|
||||
shader->NormalPointer(GL_FLOAT, stride, &base->m_Normal[0]);
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, stride, &base->m_UV[0]);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position[0]);
|
||||
shader->NormalPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Normal[0]);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, stride, &base->m_UV[0]);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
@@ -203,10 +203,18 @@ void ShaderModelVertexRenderer::PrepareModelDef(
|
||||
GLsizei stride = (GLsizei)m->shadermodeldef->m_Array.GetStride();
|
||||
|
||||
if (streamflags & STREAM_UV0)
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, stride, base + m->shadermodeldef->m_UVs[0].offset);
|
||||
{
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, stride,
|
||||
base + m->shadermodeldef->m_UVs[0].offset);
|
||||
}
|
||||
|
||||
if ((streamflags & STREAM_UV1) && def.GetNumUVsPerVertex() >= 2)
|
||||
shader->TexCoordPointer(GL_TEXTURE1, 2, GL_FLOAT, stride, base + m->shadermodeldef->m_UVs[1].offset);
|
||||
{
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE1, Renderer::Backend::Format::R32G32_SFLOAT, stride,
|
||||
base + m->shadermodeldef->m_UVs[1].offset);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -225,10 +233,18 @@ void ShaderModelVertexRenderer::RenderModel(
|
||||
deviceCommandContext->SetIndexBuffer(m->shadermodeldef->m_IndexArray.GetBuffer());
|
||||
|
||||
if (streamflags & STREAM_POS)
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, base + shadermodel->m_Position.offset);
|
||||
{
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride,
|
||||
base + shadermodel->m_Position.offset);
|
||||
}
|
||||
|
||||
if (streamflags & STREAM_NORMAL)
|
||||
shader->NormalPointer(GL_FLOAT, stride, base + shadermodel->m_Normal.offset);
|
||||
{
|
||||
shader->NormalPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride,
|
||||
base + shadermodel->m_Normal.offset);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
|
||||
@@ -331,20 +331,36 @@ void InstancingModelRenderer::PrepareModelDef(
|
||||
deviceCommandContext->SetIndexBuffer(m->imodeldef->m_IndexArray.GetBuffer());
|
||||
|
||||
if (streamflags & STREAM_POS)
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, base + m->imodeldef->m_Position.offset);
|
||||
{
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride,
|
||||
base + m->imodeldef->m_Position.offset);
|
||||
}
|
||||
|
||||
if (streamflags & STREAM_NORMAL)
|
||||
shader->NormalPointer(GL_FLOAT, stride, base + m->imodeldef->m_Normal.offset);
|
||||
{
|
||||
shader->NormalPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride,
|
||||
base + m->imodeldef->m_Normal.offset);
|
||||
}
|
||||
|
||||
if (m->calculateTangents)
|
||||
shader->VertexAttribPointer(str_a_tangent, 4, GL_FLOAT, GL_FALSE, stride, base + m->imodeldef->m_Tangent.offset);
|
||||
{
|
||||
shader->VertexAttribPointer(
|
||||
str_a_tangent, Renderer::Backend::Format::R32G32B32A32_SFLOAT,
|
||||
GL_FALSE, stride, base + m->imodeldef->m_Tangent.offset);
|
||||
}
|
||||
|
||||
// The last UV set is STREAM_UV3
|
||||
for (size_t uv = 0; uv < 4; ++uv)
|
||||
if (streamflags & (STREAM_UV0 << uv))
|
||||
{
|
||||
if (def.GetNumUVsPerVertex() >= uv + 1)
|
||||
shader->TexCoordPointer(GL_TEXTURE0 + uv, 2, GL_FLOAT, stride, base + m->imodeldef->m_UVs[uv].offset);
|
||||
{
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0 + uv, Renderer::Backend::Format::R32G32_SFLOAT, stride,
|
||||
base + m->imodeldef->m_UVs[uv].offset);
|
||||
}
|
||||
else
|
||||
ONCE(LOGERROR("Model '%s' has no UV%d set.", def.GetName().string8().c_str(), uv));
|
||||
}
|
||||
@@ -352,8 +368,12 @@ void InstancingModelRenderer::PrepareModelDef(
|
||||
// GPU skinning requires extra attributes to compute positions/normals
|
||||
if (m->gpuSkinning)
|
||||
{
|
||||
shader->VertexAttribPointer(str_a_skinJoints, 4, GL_UNSIGNED_BYTE, GL_FALSE, stride, base + m->imodeldef->m_BlendJoints.offset);
|
||||
shader->VertexAttribPointer(str_a_skinWeights, 4, GL_UNSIGNED_BYTE, GL_TRUE, stride, base + m->imodeldef->m_BlendWeights.offset);
|
||||
shader->VertexAttribPointer(
|
||||
str_a_skinJoints, Renderer::Backend::Format::R8G8B8A8_UINT, GL_FALSE,
|
||||
stride, base + m->imodeldef->m_BlendJoints.offset);
|
||||
shader->VertexAttribPointer(
|
||||
str_a_skinWeights, Renderer::Backend::Format::R8G8B8A8_UNORM, GL_TRUE,
|
||||
stride, base + m->imodeldef->m_BlendWeights.offset);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
@@ -573,16 +573,16 @@ void OverlayRenderer::RenderQuadOverlays(
|
||||
int streamflags = shader->GetStreamFlags();
|
||||
|
||||
if (streamflags & STREAM_POS)
|
||||
shader->VertexPointer(m->quadAttributePos.elems, m->quadAttributePos.type, vertexStride, vertexBase + m->quadAttributePos.offset);
|
||||
shader->VertexPointer(Renderer::Backend::Format::R32G32B32_SFLOAT, vertexStride, vertexBase + m->quadAttributePos.offset);
|
||||
|
||||
if (streamflags & STREAM_UV0)
|
||||
shader->TexCoordPointer(GL_TEXTURE0, m->quadAttributeUV.elems, m->quadAttributeUV.type, vertexStride, vertexBase + m->quadAttributeUV.offset);
|
||||
shader->TexCoordPointer(GL_TEXTURE0, Renderer::Backend::Format::R16G16_SINT, vertexStride, vertexBase + m->quadAttributeUV.offset);
|
||||
|
||||
if (streamflags & STREAM_UV1)
|
||||
shader->TexCoordPointer(GL_TEXTURE1, m->quadAttributeUV.elems, m->quadAttributeUV.type, vertexStride, vertexBase + m->quadAttributeUV.offset);
|
||||
shader->TexCoordPointer(GL_TEXTURE1, Renderer::Backend::Format::R16G16_SINT, vertexStride, vertexBase + m->quadAttributeUV.offset);
|
||||
|
||||
if (streamflags & STREAM_COLOR)
|
||||
shader->ColorPointer(m->quadAttributeColor.elems, m->quadAttributeColor.type, vertexStride, vertexBase + m->quadAttributeColor.offset);
|
||||
shader->ColorPointer(Renderer::Backend::Format::R32G32B32A32_SFLOAT, vertexStride, vertexBase + m->quadAttributeColor.offset);
|
||||
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->DrawIndexed(m->quadIndices.GetOffset() + batchRenderData.m_IndicesBase, batchNumQuads * 6, 0);
|
||||
@@ -644,7 +644,8 @@ void OverlayRenderer::RenderForegroundOverlays(
|
||||
{0.0f, 0.0f},
|
||||
};
|
||||
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, sizeof(CVector2D), &uvs[0]);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, sizeof(CVector2D), &uvs[0]);
|
||||
|
||||
for (size_t i = 0; i < m->sprites.size(); ++i)
|
||||
{
|
||||
@@ -667,7 +668,8 @@ void OverlayRenderer::RenderForegroundOverlays(
|
||||
sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y1
|
||||
};
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, sizeof(CVector3D), &position[0].X);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, sizeof(CVector3D), &position[0].X);
|
||||
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
@@ -773,7 +775,8 @@ void OverlayRenderer::RenderSphereOverlays(
|
||||
|
||||
m->GenerateSphere();
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, 0, &m->sphereVertexes[0]);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, &m->sphereVertexes[0]);
|
||||
|
||||
for (size_t i = 0; i < m->spheres.size(); ++i)
|
||||
{
|
||||
|
||||
@@ -803,9 +803,12 @@ void CPatchRData::RenderBases(
|
||||
{
|
||||
GLsizei stride = sizeof(SBaseVertex);
|
||||
SBaseVertex *base = (SBaseVertex *)itv->first->Bind(deviceCommandContext);
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base->m_Position[0]);
|
||||
shader->NormalPointer(GL_FLOAT, stride, &base->m_Normal[0]);
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 3, GL_FLOAT, stride, &base->m_Position[0]);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position[0]);
|
||||
shader->NormalPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Normal[0]);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position[0]);
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
@@ -1029,10 +1032,14 @@ void CPatchRData::RenderBlends(
|
||||
GLsizei stride = sizeof(SBlendVertex);
|
||||
SBlendVertex *base = (SBlendVertex *)itv->first->Bind(deviceCommandContext);
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base->m_Position[0]);
|
||||
shader->NormalPointer(GL_FLOAT, stride, &base->m_Normal[0]);
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 3, GL_FLOAT, stride, &base->m_Position[0]);
|
||||
shader->TexCoordPointer(GL_TEXTURE1, 2, GL_FLOAT, stride, &base->m_AlphaUVs[0]);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position[0]);
|
||||
shader->NormalPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Normal[0]);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position[0]);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE1, Renderer::Backend::Format::R32G32_SFLOAT, stride, &base->m_AlphaUVs[0]);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
@@ -1098,9 +1105,13 @@ void CPatchRData::RenderStreams(
|
||||
GLsizei stride = sizeof(SBaseVertex);
|
||||
SBaseVertex *base = (SBaseVertex *)streamBatch.first->Bind(deviceCommandContext);
|
||||
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base->m_Position);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position);
|
||||
if (bindPositionAsTexCoord)
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 3, GL_FLOAT, stride, &base->m_Position);
|
||||
{
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
@@ -1174,7 +1185,8 @@ void CPatchRData::RenderSides(
|
||||
|
||||
// setup data pointers
|
||||
GLsizei stride = sizeof(SSideVertex);
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base->m_Position);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base->m_Position);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
@@ -1431,9 +1443,14 @@ void CPatchRData::RenderWaterSurface(
|
||||
|
||||
// Setup data pointers.
|
||||
const GLsizei stride = sizeof(SWaterVertex);
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base[m_VBWater->m_Index].m_Position);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base[m_VBWater->m_Index].m_Position);
|
||||
if (bindWaterData)
|
||||
shader->VertexAttribPointer(str_a_waterInfo, 2, GL_FLOAT, false, stride, &base[m_VBWater->m_Index].m_WaterData);
|
||||
{
|
||||
shader->VertexAttribPointer(
|
||||
str_a_waterInfo, Renderer::Backend::Format::R32G32_SFLOAT, false, stride,
|
||||
&base[m_VBWater->m_Index].m_WaterData);
|
||||
}
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
@@ -1460,8 +1477,12 @@ void CPatchRData::RenderWaterShore(
|
||||
SWaterVertex* base = reinterpret_cast<SWaterVertex*>(m_VBWaterShore->m_Owner->Bind(deviceCommandContext));
|
||||
|
||||
const GLsizei stride = sizeof(SWaterVertex);
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base[m_VBWaterShore->m_Index].m_Position);
|
||||
shader->VertexAttribPointer(str_a_waterInfo, 2, GL_FLOAT, false, stride, &base[m_VBWaterShore->m_Index].m_WaterData);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride,
|
||||
&base[m_VBWaterShore->m_Index].m_Position);
|
||||
shader->VertexAttribPointer(
|
||||
str_a_waterInfo, Renderer::Backend::Format::R32G32_SFLOAT, false, stride,
|
||||
&base[m_VBWaterShore->m_Index].m_WaterData);
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
|
||||
@@ -228,8 +228,10 @@ void CPostprocManager::ApplyBlurDownscale2x(
|
||||
1.0f, 0.0f,
|
||||
1.0f, 1.0f
|
||||
};
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, 0, quadTex);
|
||||
shader->VertexPointer(2, GL_FLOAT, 0, quadVerts);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, 0, quadTex);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32_SFLOAT, 0, quadVerts);
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
@@ -284,8 +286,10 @@ void CPostprocManager::ApplyBlurGauss(
|
||||
1.0f, 0.0f,
|
||||
1.0f, 1.0f
|
||||
};
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, 0, quadTex);
|
||||
shader->VertexPointer(2, GL_FLOAT, 0, quadVerts);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, 0, quadTex);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32_SFLOAT, 0, quadVerts);
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
@@ -309,8 +313,10 @@ void CPostprocManager::ApplyBlurGauss(
|
||||
|
||||
g_Renderer.SetViewport(vp);
|
||||
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, 0, quadTex);
|
||||
shader->VertexPointer(2, GL_FLOAT, 0, quadVerts);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, 0, quadTex);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32_SFLOAT, 0, quadVerts);
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
@@ -429,8 +435,10 @@ void CPostprocManager::ApplyEffect(
|
||||
1.0f, 0.0f,
|
||||
1.0f, 1.0f
|
||||
};
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, 0, quadTex);
|
||||
shader->VertexPointer(2, GL_FLOAT, 0, quadVerts);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, 0, quadTex);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32_SFLOAT, 0, quadVerts);
|
||||
shader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
|
||||
@@ -747,8 +747,10 @@ void ShadowMap::RenderDebugTexture(
|
||||
1,0, 0,1, 1,1
|
||||
};
|
||||
|
||||
texShader->VertexPointer(2, GL_FLOAT, 0, boxVerts);
|
||||
texShader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, 0, boxUV);
|
||||
texShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32_SFLOAT, 0, boxVerts);
|
||||
texShader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, 0, boxUV);
|
||||
texShader->AssertPointersBound();
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
|
||||
@@ -493,7 +493,8 @@ void SilhouetteRenderer::RenderDebugOverlays(
|
||||
r.x1, r.y1,
|
||||
r.x0, r.y1,
|
||||
};
|
||||
shader->VertexPointer(2, GL_SHORT, 0, verts);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R16G16_SINT, 0, verts);
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
}
|
||||
|
||||
|
||||
@@ -243,9 +243,9 @@ void SkyManager::RenderSky(
|
||||
const GLsizei stride = static_cast<GLsizei>(m_VertexArray.GetStride());
|
||||
|
||||
shader->VertexPointer(
|
||||
3, GL_FLOAT, stride, base + m_AttributePosition.offset);
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, base + m_AttributePosition.offset);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, 3, GL_FLOAT, stride, base + m_AttributeUV.offset);
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32B32_SFLOAT, stride, base + m_AttributeUV.offset);
|
||||
shader->AssertPointersBound();
|
||||
|
||||
deviceCommandContext->Draw(0, m_VertexArray.GetNumberOfVertices());
|
||||
|
||||
@@ -229,7 +229,8 @@ void TerrainOverlay::RenderTile(
|
||||
overlayShader->Uniform(str_transform, g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection());
|
||||
overlayShader->Uniform(str_color, color);
|
||||
|
||||
overlayShader->VertexPointer(3, GL_FLOAT, 0, vertices.data());
|
||||
overlayShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, vertices.data());
|
||||
overlayShader->AssertPointersBound();
|
||||
|
||||
deviceCommandContext->Draw(0, vertices.size() / 3);
|
||||
@@ -297,7 +298,8 @@ void TerrainOverlay::RenderTileOutline(
|
||||
overlayShader->Uniform(str_transform, g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection());
|
||||
overlayShader->Uniform(str_color, color);
|
||||
|
||||
overlayShader->VertexPointer(3, GL_FLOAT, 0, vertices.data());
|
||||
overlayShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, vertices.data());
|
||||
overlayShader->AssertPointersBound();
|
||||
|
||||
deviceCommandContext->Draw(0, vertices.size() / 3);
|
||||
|
||||
@@ -208,8 +208,10 @@ void TerrainRenderer::RenderTerrainOverlayTexture(
|
||||
};
|
||||
|
||||
const GLsizei stride = sizeof(float) * 3;
|
||||
debugOverlayShader->VertexPointer(3, GL_FLOAT, stride, waterPos);
|
||||
debugOverlayShader->TexCoordPointer(GL_TEXTURE0, 3, GL_FLOAT, stride, waterPos);
|
||||
debugOverlayShader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, waterPos);
|
||||
debugOverlayShader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R32G32B32_SFLOAT, stride, waterPos);
|
||||
debugOverlayShader->AssertPointersBound();
|
||||
|
||||
deviceCommandContext->Draw(0, 6);
|
||||
|
||||
@@ -60,13 +60,13 @@ void CTexturedLineRData::Render(
|
||||
reinterpret_cast<CTexturedLineRData::SVertex*>(m_VB->m_Owner->Bind(deviceCommandContext));
|
||||
|
||||
if (streamFlags & STREAM_POS)
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &vertexBase->m_Position[0]);
|
||||
shader->VertexPointer(Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &vertexBase->m_Position[0]);
|
||||
|
||||
if (streamFlags & STREAM_UV0)
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, stride, &vertexBase->m_UVs[0]);
|
||||
shader->TexCoordPointer(GL_TEXTURE0, Renderer::Backend::Format::R32G32_SFLOAT, stride, &vertexBase->m_UVs[0]);
|
||||
|
||||
if (streamFlags & STREAM_UV1)
|
||||
shader->TexCoordPointer(GL_TEXTURE1, 2, GL_FLOAT, stride, &vertexBase->m_UVs[0]);
|
||||
shader->TexCoordPointer(GL_TEXTURE1, Renderer::Backend::Format::R32G32_SFLOAT, stride, &vertexBase->m_UVs[0]);
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
|
||||
@@ -799,13 +799,18 @@ void WaterManager::RenderWaves(
|
||||
|
||||
// setup data pointers
|
||||
GLsizei stride = sizeof(SWavesVertex);
|
||||
shader->VertexPointer(3, GL_FLOAT, stride, &base[VBchunk->m_Index].m_BasePosition);
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_UNSIGNED_BYTE, stride, &base[VBchunk->m_Index].m_UV);
|
||||
// NormalPointer(gl_FLOAT, stride, &base[m_VBWater->m_Index].m_UV)
|
||||
glVertexAttribPointerARB(2, 2, GL_FLOAT, GL_FALSE, stride, &base[VBchunk->m_Index].m_PerpVect); // replaces commented above because my normal is vec2
|
||||
shader->VertexAttribPointer(str_a_apexPosition, 3, GL_FLOAT, false, stride, &base[VBchunk->m_Index].m_ApexPosition);
|
||||
shader->VertexAttribPointer(str_a_splashPosition, 3, GL_FLOAT, false, stride, &base[VBchunk->m_Index].m_SplashPosition);
|
||||
shader->VertexAttribPointer(str_a_retreatPosition, 3, GL_FLOAT, false, stride, &base[VBchunk->m_Index].m_RetreatPosition);
|
||||
shader->VertexPointer(
|
||||
Renderer::Backend::Format::R32G32B32_SFLOAT, stride, &base[VBchunk->m_Index].m_BasePosition);
|
||||
shader->TexCoordPointer(
|
||||
GL_TEXTURE0, Renderer::Backend::Format::R8G8_UINT, stride, &base[VBchunk->m_Index].m_UV);
|
||||
shader->NormalPointer(
|
||||
Renderer::Backend::Format::R32G32_SFLOAT, stride, &base[VBchunk->m_Index].m_PerpVect);
|
||||
shader->VertexAttribPointer(
|
||||
str_a_apexPosition, Renderer::Backend::Format::R32G32B32_SFLOAT, false, stride, &base[VBchunk->m_Index].m_ApexPosition);
|
||||
shader->VertexAttribPointer(
|
||||
str_a_splashPosition, Renderer::Backend::Format::R32G32B32_SFLOAT, false, stride, &base[VBchunk->m_Index].m_SplashPosition);
|
||||
shader->VertexAttribPointer(
|
||||
str_a_retreatPosition, Renderer::Backend::Format::R32G32B32_SFLOAT, false, stride, &base[VBchunk->m_Index].m_RetreatPosition);
|
||||
|
||||
shader->AssertPointersBound();
|
||||
|
||||
|
||||
@@ -27,12 +27,18 @@ namespace Backend
|
||||
enum class Format
|
||||
{
|
||||
UNDEFINED,
|
||||
R8G8_UNORM,
|
||||
R8G8_UINT,
|
||||
R8G8B8_UNORM,
|
||||
R8G8B8A8_UNORM,
|
||||
R8G8B8A8_UINT,
|
||||
|
||||
A8_UNORM,
|
||||
L8_UNORM,
|
||||
|
||||
R16_SINT,
|
||||
R16G16_SINT,
|
||||
|
||||
R32_SFLOAT,
|
||||
R32G32_SFLOAT,
|
||||
R32G32B32_SFLOAT,
|
||||
|
||||
@@ -872,6 +872,9 @@ bool CDevice::IsTextureFormatSupported(const Format format) const
|
||||
case Format::BC3_UNORM:
|
||||
supported = m_Capabilities.S3TC;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return supported;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user