diff -r -C 2 -x '*scm' -x '*.o' fluxus.orig/libfluxus/src/PolyPrimitive.cpp fluxus/libfluxus/src/PolyPrimitive.cpp *** fluxus.orig/libfluxus/src/PolyPrimitive.cpp Tue Oct 23 14:13:37 2007 --- fluxus/libfluxus/src/PolyPrimitive.cpp Tue Oct 23 16:02:53 2007 *************** *** 159,164 **** if (m_IndexMode) glDrawElements(type,m_IndexData.size(),GL_UNSIGNED_INT,&(m_IndexData[0])); else glDrawArrays(type,0,m_VertData->size()); ! } ! if (m_State.Hints & HINT_WIRE) { --- 159,164 ---- if (m_IndexMode) glDrawElements(type,m_IndexData.size(),GL_UNSIGNED_INT,&(m_IndexData[0])); else glDrawArrays(type,0,m_VertData->size()); ! } ! if (m_State.Hints & HINT_WIRE) { *************** *** 166,171 **** glPolygonOffset(1,1); glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); ! glColor3fv(m_State.WireColour.arr()); ! glDisable(GL_LIGHTING); if (m_IndexMode) glDrawElements(type,m_IndexData.size(),GL_UNSIGNED_INT,&(m_IndexData[0])); else glDrawArrays(type,0,m_VertData->size()); --- 166,171 ---- glPolygonOffset(1,1); glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); ! glColor4fv(m_State.WireColour.arr()); ! glDisable(GL_LIGHTING); if (m_IndexMode) glDrawElements(type,m_IndexData.size(),GL_UNSIGNED_INT,&(m_IndexData[0])); else glDrawArrays(type,0,m_VertData->size()); *************** *** 174,184 **** glEnable(GL_TEXTURE_2D); } ! if (m_State.Hints & HINT_POINTS) { glDisable(GL_TEXTURE_2D); glPolygonMode(GL_FRONT_AND_BACK,GL_POINT); ! glColor3fv(m_State.WireColour.arr()); ! glDisable(GL_LIGHTING); if (m_IndexMode) glDrawElements(type,m_IndexData.size(),GL_UNSIGNED_INT,&(m_IndexData[0])); else glDrawArrays(type,0,m_VertData->size()); --- 174,184 ---- glEnable(GL_TEXTURE_2D); } ! if (m_State.Hints & HINT_POINTS) { glDisable(GL_TEXTURE_2D); glPolygonMode(GL_FRONT_AND_BACK,GL_POINT); ! glColor4fv(m_State.WireColour.arr()); ! glDisable(GL_LIGHTING); if (m_IndexMode) glDrawElements(type,m_IndexData.size(),GL_UNSIGNED_INT,&(m_IndexData[0])); else glDrawArrays(type,0,m_VertData->size()); *************** *** 187,192 **** glEnable(GL_TEXTURE_2D); } ! ! if (m_State.Hints & HINT_UNLIT) glEnable(GL_LIGHTING); } --- 187,192 ---- glEnable(GL_TEXTURE_2D); } ! ! if (m_State.Hints & HINT_UNLIT) glEnable(GL_LIGHTING); } diff -r -C 2 -x '*scm' -x '*.o' fluxus.orig/libfluxus/src/State.cpp fluxus/libfluxus/src/State.cpp *** fluxus.orig/libfluxus/src/State.cpp Tue Oct 23 14:13:37 2007 --- fluxus/libfluxus/src/State.cpp Tue Oct 23 17:33:01 2007 *************** *** 31,34 **** --- 31,36 ---- SourceBlend(GL_SRC_ALPHA), DestinationBlend(GL_ONE_MINUS_SRC_ALPHA), + WireColour(1,1,1), + WireOpacity(1.0f), Shader(NULL) { *************** *** 43,46 **** --- 45,49 ---- glMultMatrixf(Transform.arr()); Colour.a=Ambient.a=Emissive.a=Specular.a=Opacity; + WireColour.a=WireOpacity; glColor4f(Colour.r,Colour.g,Colour.b,Colour.a); glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,Ambient.arr()); *************** *** 54,58 **** TexturePainter::Get()->SetCurrent(Textures); ! if (Shader) { --- 57,61 ---- TexturePainter::Get()->SetCurrent(Textures); ! if (Shader) { *************** *** 73,76 **** --- 76,80 ---- <<"Shinyness: "<Renderer()->GetPrimitive(IntFromScheme(argv[0]))->ApplyTransform(); ! MZ_GC_UNREG(); return scheme_void; } --- 238,242 ---- ArgCheck("apply-transform", "i", argc, argv); Engine::Get()->Renderer()->GetPrimitive(IntFromScheme(argv[0]))->ApplyTransform(); ! MZ_GC_UNREG(); return scheme_void; } *************** *** 248,253 **** // Sets the opacity of the current drawing state, or the currently grabbed primitive. // Example: ! // (opacity 0.5) ! // (define mycube (build-cube)) ; makes a half transparent cube // EndFunctionDoc --- 248,253 ---- // Sets the opacity of the current drawing state, or the currently grabbed primitive. // Example: ! // (opacity 0.5) ! // (define mycube (build-cube)) ; makes a half transparent cube // EndFunctionDoc *************** *** 259,263 **** // atualmente. // Exemplo: ! // (opacity 0.5) // (define mycube (build-cube)) ; faz um cubo semi-transparente. // EndFunctionDoc --- 259,263 ---- // atualmente. // Exemplo: ! // (opacity 0.5) // (define mycube (build-cube)) ; faz um cubo semi-transparente. // EndFunctionDoc *************** *** 268,276 **** ArgCheck("opacity", "f", argc, argv); Engine::Get()->State()->Opacity=FloatFromScheme(argv[0]); ! MZ_GC_UNREG(); return scheme_void; } // StartFunctionDoc-en // shinyness value // Returns: void --- 268,300 ---- ArgCheck("opacity", "f", argc, argv); Engine::Get()->State()->Opacity=FloatFromScheme(argv[0]); ! MZ_GC_UNREG(); return scheme_void; } // StartFunctionDoc-en + // wire-opacity value + // Returns: void + // Description: + // Sets the wireframe opacity of the current drawing state, or the currently + // grabbed primitive. + // Example: + // (hint-none) + // (hint-wire) + // (backfacecull 0) + // (line-width 5) + // (wire-colour (vector 1 1 1)) + // (wire-opacity 0.5) + // (build-cube) ; makes a half transparent wireframe cube + // EndFunctionDoc + + Scheme_Object *wire_opacity(int argc, Scheme_Object **argv) + { + DECL_ARGV(); + ArgCheck("wire-opacity", "f", argc, argv); + Engine::Get()->State()->WireOpacity=FloatFromScheme(argv[0]); + MZ_GC_UNREG(); + return scheme_void; + } + // StartFunctionDoc-en // shinyness value // Returns: void *************** *** 1839,1842 **** --- 1863,1867 ---- scheme_add_global("wire-colour",scheme_make_prim_w_arity(wire_colour,"wire-colour",1,1), env); scheme_add_global("opacity",scheme_make_prim_w_arity(opacity,"opacity",1,1), env); + scheme_add_global("wire-opacity",scheme_make_prim_w_arity(wire_opacity,"wire-opacity",1,1), env); scheme_add_global("specular",scheme_make_prim_w_arity(specular,"specular",1,1), env); scheme_add_global("ambient",scheme_make_prim_w_arity(ambient,"ambient",1,1), env);