From e4790aef46f7ca0b4ab01c34f043be9e7b1fa7f1 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Mon, 13 Feb 2006 05:45:32 +0000 Subject: Improved OpenGL Shader Language support for game engine. The python interface is much simplified. Drawback is that scripts need to be updated next release. Testfiles: http://www.continuousphysics.com/ftp/pub/test/index.php?dir=blender/&file=demos-2.42.zip patch by Charlie Carley (snailrose @ elysiun.com) --- .../RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp | 257 ++++++++------------- 1 file changed, 93 insertions(+), 164 deletions(-) (limited to 'source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp') diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index 38dfb7836b2..794562675ad 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -81,6 +81,7 @@ RAS_OpenGLRasterizer::RAS_OpenGLRasterizer(RAS_ICanvas* canvas) m_focallength(0.0), m_setfocallength(false), m_noOfScanlines(32), + m_useTang(0), m_materialCachingInfo(0) { m_viewmatrix.Identity(); @@ -603,6 +604,15 @@ void RAS_OpenGLRasterizer::SwapBuffers() +void RAS_OpenGLRasterizer::GetViewMatrix(MT_Matrix4x4 &mat) const +{ + float viewmat[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, viewmat); + mat.setValue(viewmat); +} + + + void RAS_OpenGLRasterizer::IndexPrimitives(const vecVertexArray & vertexarrays, const vecIndexArrays & indexarrays, int mode, @@ -1191,6 +1201,59 @@ void RAS_OpenGLRasterizer::IndexPrimitives_3DText(const vecVertexArray & vertexa } //for each vertexarray } +void RAS_OpenGLRasterizer::SetAttrib(int type) +{ + if(type == RAS_TEXTANGENT) m_useTang=true; +} + + +void RAS_OpenGLRasterizer::SetTexCoords(TexCoGen coords,int unit) +{ + // this changes from material to material + if(unit <= RAS_MAX) + m_texco[unit] = coords; +} + + +void RAS_OpenGLRasterizer::TexCoord(const RAS_TexVert &tv, int enabled) +{ +#ifdef GL_ARB_multitexture + if(bgl::RAS_EXT_support._ARB_multitexture) + { + for(int unit=0; unit