forked from bartvdbraak/blender
BGE Rasterizer Cleanup: Getting rid of RAS_IRasterizer::RenderText(), and just adding the code to IndexPrimitives_3DText(), which is the only function that uses RenderText().
This commit is contained in:
parent
a565e34c39
commit
e2c91b570d
@ -495,16 +495,6 @@ public:
|
|||||||
int height
|
int height
|
||||||
) = 0;
|
) = 0;
|
||||||
|
|
||||||
// 3d text, mapped on polygon
|
|
||||||
virtual void RenderText(int mode,
|
|
||||||
RAS_IPolyMaterial* polymat,
|
|
||||||
float v1[3],
|
|
||||||
float v2[3],
|
|
||||||
float v3[3],
|
|
||||||
float v4[3],
|
|
||||||
int glattrib
|
|
||||||
)=0;
|
|
||||||
|
|
||||||
virtual void ProcessLighting(bool uselights, const MT_Transform& trans)=0;
|
virtual void ProcessLighting(bool uselights, const MT_Transform& trans)=0;
|
||||||
|
|
||||||
virtual void PushMatrix()=0;
|
virtual void PushMatrix()=0;
|
||||||
|
@ -681,6 +681,12 @@ void RAS_OpenGLRasterizer::IndexPrimitives_3DText(RAS_MeshSlot& ms,
|
|||||||
bool obcolor = ms.m_bObjectColor;
|
bool obcolor = ms.m_bObjectColor;
|
||||||
MT_Vector4& rgba = ms.m_RGBAcolor;
|
MT_Vector4& rgba = ms.m_RGBAcolor;
|
||||||
RAS_MeshSlot::iterator it;
|
RAS_MeshSlot::iterator it;
|
||||||
|
struct MTFace* tface = 0;
|
||||||
|
|
||||||
|
const STR_String& mytext = ((CValue*)m_clientobject)->GetPropertyText("Text");
|
||||||
|
|
||||||
|
const unsigned int flag = polymat->GetFlag();
|
||||||
|
unsigned int *col = 0;
|
||||||
|
|
||||||
// handle object color
|
// handle object color
|
||||||
if (obcolor) {
|
if (obcolor) {
|
||||||
@ -732,9 +738,18 @@ void RAS_OpenGLRasterizer::IndexPrimitives_3DText(RAS_MeshSlot& ms,
|
|||||||
for (unit=0; unit<m_attrib_num; unit++)
|
for (unit=0; unit<m_attrib_num; unit++)
|
||||||
if (m_attrib[unit] == RAS_TEXCO_UV)
|
if (m_attrib[unit] == RAS_TEXCO_UV)
|
||||||
glattrib = unit;
|
glattrib = unit;
|
||||||
|
|
||||||
RenderText(polymat->GetDrawingMode(), polymat,
|
if (flag & RAS_BLENDERMAT) {
|
||||||
v[0], v[1], v[2], (numvert == 4)? v[3]: NULL, glattrib);
|
KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(polymat);
|
||||||
|
tface = bl_mat->GetMTFace();
|
||||||
|
col = bl_mat->GetMCol();
|
||||||
|
} else {
|
||||||
|
KX_PolygonMaterial* blenderpoly = static_cast<KX_PolygonMaterial*>(polymat);
|
||||||
|
tface = blenderpoly->GetMTFace();
|
||||||
|
col = blenderpoly->GetMCol();
|
||||||
|
}
|
||||||
|
|
||||||
|
GPU_render_text(tface, polymat->GetDrawingMode(), mytext, mytext.Length(), col, v[1], v[2], v[3], v[4], glattrib);
|
||||||
|
|
||||||
ClearCachingInfo();
|
ClearCachingInfo();
|
||||||
}
|
}
|
||||||
@ -1500,34 +1515,6 @@ void RAS_OpenGLRasterizer::RenderText2D(RAS_TEXT_RENDER_MODE mode,
|
|||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Render Text renders text into a (series of) polygon, using a texture font,
|
|
||||||
* Each character consists of one polygon (one quad or two triangles) */
|
|
||||||
|
|
||||||
void RAS_OpenGLRasterizer::RenderText(
|
|
||||||
int mode,
|
|
||||||
RAS_IPolyMaterial* polymat,
|
|
||||||
float v1[3], float v2[3], float v3[3], float v4[3], int glattrib)
|
|
||||||
{
|
|
||||||
const STR_String& mytext = ((CValue*)m_clientobject)->GetPropertyText("Text");
|
|
||||||
|
|
||||||
const unsigned int flag = polymat->GetFlag();
|
|
||||||
struct MTFace* tface = 0;
|
|
||||||
unsigned int *col = 0;
|
|
||||||
|
|
||||||
if (flag & RAS_BLENDERMAT) {
|
|
||||||
KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(polymat);
|
|
||||||
tface = bl_mat->GetMTFace();
|
|
||||||
col = bl_mat->GetMCol();
|
|
||||||
} else {
|
|
||||||
KX_PolygonMaterial* blenderpoly = static_cast<KX_PolygonMaterial*>(polymat);
|
|
||||||
tface = blenderpoly->GetMTFace();
|
|
||||||
col = blenderpoly->GetMCol();
|
|
||||||
}
|
|
||||||
|
|
||||||
GPU_render_text(tface, mode, mytext, mytext.Length(), col, v1, v2, v3, v4, glattrib);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void RAS_OpenGLRasterizer::PushMatrix()
|
void RAS_OpenGLRasterizer::PushMatrix()
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
|
@ -366,14 +366,6 @@ public:
|
|||||||
int width,
|
int width,
|
||||||
int height);
|
int height);
|
||||||
|
|
||||||
void RenderText(int mode,
|
|
||||||
class RAS_IPolyMaterial* polymat,
|
|
||||||
float v1[3],
|
|
||||||
float v2[3],
|
|
||||||
float v3[3],
|
|
||||||
float v4[3],
|
|
||||||
int glattrib);
|
|
||||||
|
|
||||||
void applyTransform(double* oglmatrix, int objectdrawmode);
|
void applyTransform(double* oglmatrix, int objectdrawmode);
|
||||||
int applyLights(int objectlayer, const MT_Transform& viewmat);
|
int applyLights(int objectlayer, const MT_Transform& viewmat);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user