|
From: <cn...@us...> - 2010-02-23 08:44:30
|
Revision: 676
http://hgengine.svn.sourceforge.net/hgengine/?rev=676&view=rev
Author: cnlohr
Date: 2010-02-23 08:44:24 +0000 (Tue, 23 Feb 2010)
Log Message:
-----------
Wooh! Fix up cleaning up after messages, get some of the C-rays working.
Modified Paths:
--------------
Mercury2/Themes/default/File/ssvgr.xml
Mercury2/modules/Makefile
Mercury2/modules.xml
Mercury2/src/Camera.cpp
Mercury2/src/Camera.h
Mercury2/src/MercuryMessageManager.h
Mercury2/src/Texture.cpp
Modified: Mercury2/Themes/default/File/ssvgr.xml
===================================================================
--- Mercury2/Themes/default/File/ssvgr.xml 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/Themes/default/File/ssvgr.xml 2010-02-23 08:44:24 UTC (rev 676)
@@ -1,34 +1,42 @@
-<SceneGraph name="root" setPasses="6+7" >
+<SceneGraph name="root" setPasses="5+6+7" >
<!--We have to put all states that are the generic state up here. This way, the states will fall back to these -->
<asset type="StateChanger" file="ColorChange:1,1,1,1"/>
- <asset type="StateChanger" file="DepthTest:1"/>
+ <asset type="StateChanger" file="DepthTest:1" setPasses="5+6+7" />
<asset type="StateChanger" file="LightingSwitch:0" enduring="1" />
- <asset type="StateChanger" file="DepthWrite:1"/>
+ <asset type="StateChanger" file="DepthWrite:1" setPasses="5+6+7" />
<asset type="StateChanger" file="FaceCulling:none"/>
<asset type="StateChanger" file="BlendFunc:SRC_ALPHA,ONE_MINUS_SRC_ALPHA" />
<asset type="StateChanger" file="AlphaFunc:GREATER,0.5" /> <!-- makes alpha ordering not matter, since it's all or nothing -->
- <node type="viewport" fov="45" aspect="1.3333" near="0.01" far="100" name="vp" >
+ <node type="viewport" fov="45" aspect="1.3333" near="0.01" far="100" name="vp" setPasses="5+6+7" >
<node type="cameranode" movx="0" movz="0" movy="0" rotx="0" roty="0" rotz="0" name="camera" >
- <node fallback="root.ground" setPasses="7" />
- <node type="transformnode" movy="2" >
- <node fallback="root.lampForest" setPasses="6" />
+ <node type="mercuryfbo" width="640" height="480" depth="true" tnum="1" name="FBOA" colorbyte0="RGBA" usescreensize="true" setPasses="5" >
+ <node fallback="root.lampForest" setPasses="5" />
</node>
- <node type="transformnode" movy="0" >
- <node fallback="root.lampForest" setPasses="7" />
- </node>
- <node type="transformnode" movz="-5" >
- <asset type="texture" file="GRAPHIC:2by.png" filter="none" />
- <asset type="quad" />
+ <node type="mercuryfbo" width="640" height="480" depth="true" tnum="1" name="FBOB" colorbyte0="RGBA" usescreensize="true" setPasses="6" >
+ <node fallback="root.skybox" setPasses="6" />
+ <node fallback="root.ground" setPasses="6" />
+ <node fallback="root.lampForest" setPasses="6" />
</node>
+ </node>
+ </node>
+
+
+ <node type="orthographic" left="-.5" right=".5" top=".5" bottom="-.5" near="1" far="-1" name="Ortho" setPasses="7" >
+ <asset type="StateChanger" file="LightingSwitch:0"/>
+ <asset type="StateChanger" file="DepthTest:0"/>
+ <asset type="shader" file="GRAPHIC:Crepuscular"/>
+ <node type="transformnode" >
+ <asset type="texture" file="FBOB_0" dynamic="true"/>
+ <asset type="texture" file="FBOA_0" dynamic="true"/>
+ <asset type="quad" />
</node>
</node>
-
<!-- Below here is just a library for some junk we can throw in -->
<node type="mercurynode" name="lampForest" setPasses="0" >
@@ -58,4 +66,35 @@
<asset type="terrain" file="MODEL:map.hgmdl" />
</node>
+ <node type="Skybox" name="skybox" setPasses="0" >
+ <asset type="StateChanger" file="DepthTest:0"/>
+ <asset type="StateChanger" file="LightingSwitch:0" />
+ <asset type="StateChanger" file="DepthWrite:0"/>
+
+ <node type="transformnode" movx=".5" rotx="-180" roty="-270" >
+ <asset type="texture" file="MODEL:Skybox/neg_x.png" />
+ <asset type="quad" />
+ </node>
+ <node type="transformnode" movy="-.5" rotx="-90" rotz="270" scaley="-1" >
+ <asset type="texture" file="MODEL:Skybox/neg_y.png" />
+ <asset type="quad" />
+ </node>
+ <node type="transformnode" movz="-.5" rotx="-180" >
+ <asset type="texture" file="MODEL:Skybox/neg_z.png" />
+ <asset type="quad" />
+ </node>
+ <node type="transformnode" movx="-.5" rotx="-180" roty="-270" scalex="-1" >
+ <asset type="texture" file="MODEL:Skybox/pos_x.png" />
+ <asset type="quad" />
+ </node>
+ <node type="transformnode" movy=".5" rotx="-90" rotz="270" >
+ <asset type="texture" file="MODEL:Skybox/pos_y.png" />
+ <asset type="quad" />
+ </node>
+ <node type="transformnode" movz=".5" rotx="-180" scalex="-1" >
+ <asset type="texture" file="MODEL:Skybox/pos_z.png" />
+ <asset type="quad" />
+ </node>
+ </node>
+
</SceneGraph>
Modified: Mercury2/modules/Makefile
===================================================================
--- Mercury2/modules/Makefile 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/modules/Makefile 2010-02-23 08:44:24 UTC (rev 676)
@@ -2,7 +2,7 @@
CXXFLAGS=${CFLAGS}
LDFLAGS=-shared
-all : BillboardNode.so TextNode.so Terrain.so TextPlate.so ParticleEmitter.so Cu2.so
+all : BillboardNode.so TextNode.so Terrain.so TextPlate.so ParticleEmitter.so Cu2.so Skybox.so
clean :
rm -rf *~ *.o *.so
Modified: Mercury2/modules.xml
===================================================================
--- Mercury2/modules.xml 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/modules.xml 2010-02-23 08:44:24 UTC (rev 676)
@@ -5,4 +5,5 @@
<Module src="modules/TextPlate.cpp" obj="modules/TextPlate" func="InstallTextPlate" class="TextPlate"/>
<Module src="modules/ParticleEmitter.cpp" obj="modules/ParticleEmitter" func="InstallParticleEmitter" class="ParticleEmitter"/>
<Module src="modules/Cu2.cpp" obj="modules/Cu2" func="InstallCu2Element" class="Cu2Element"/>
+ <Module src="modules/Skybox.cpp" obj="modules/Skybox" func="InstallSkybox" class="Skybox"/>
</Modules>
Modified: Mercury2/src/Camera.cpp
===================================================================
--- Mercury2/src/Camera.cpp 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/src/Camera.cpp 2010-02-23 08:44:24 UTC (rev 676)
@@ -17,6 +17,12 @@
REGISTER_MESSAGE_WITH_DELEGATE( "SetCameraPosition", &CameraNode::SetCameraPosition );
}
+CameraNode::~CameraNode()
+{
+ UNREGISTER_FOR_MESSAGE( INPUTEVENT_MOUSE );
+ UNREGISTER_FOR_MESSAGE( "SetCameraPosition" );
+}
+
void CameraNode::PreRender(const MercuryMatrix& matrix)
{
VIEWMATRIX = m_viewMatrix;
Modified: Mercury2/src/Camera.h
===================================================================
--- Mercury2/src/Camera.h 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/src/Camera.h 2010-02-23 08:44:24 UTC (rev 676)
@@ -9,6 +9,7 @@
{
public:
CameraNode();
+ ~CameraNode();
virtual void ComputeMatrix();
virtual void HandleMouseInput(const MessageData& data);
virtual void Update(float dTime);
Modified: Mercury2/src/MercuryMessageManager.h
===================================================================
--- Mercury2/src/MercuryMessageManager.h 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/src/MercuryMessageManager.h 2010-02-23 08:44:24 UTC (rev 676)
@@ -34,7 +34,7 @@
class MercuryMessageManager
{
public:
- MercuryMessageManager() : m_messageQueue( MessageHolder::Compare ) { }
+ MercuryMessageManager() : m_messageQueue( MessageHolder::Compare ), m_currTime(0) { }
///Dispatch message whenever the message manager gets control again; delay after now.
void PostMessage(const MString& message, MessageData* data, float delay);
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2010-02-23 07:39:14 UTC (rev 675)
+++ Mercury2/src/Texture.cpp 2010-02-23 08:44:24 UTC (rev 676)
@@ -203,7 +203,7 @@
void Texture::Activate(uint32_t textureResource)
{
GLCALL( glActiveTexture( textureResource ) );
- GLCALL( glClientActiveTextureARB(textureResource) );
+ GLCALL( glClientActiveTextureARB(textureResource) ); //XXX: Note to self, this seems to be causing a crash, look into it.
GLCALL( glEnableClientState(GL_TEXTURE_COORD_ARRAY) );
GLCALL( glEnable( GL_TEXTURE_2D ) );
}
@@ -222,7 +222,7 @@
for (uint8_t i = 0; i < m_numActiveTextures; ++i)
{
GLCALL( glActiveTexture( GL_TEXTURE0+i ) );
- GLCALL( glClientActiveTextureARB(GL_TEXTURE0+i) );
+ GLCALL( glClientActiveTextureARB(GL_TEXTURE0+i) ); //XXX: Note to self, this seems to be causing a crash, look into it.
GLCALL( glTexCoordPointer(2, GL_FLOAT, stride, BUFFER_OFFSET(uvByteOffset)) );
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|