Changeset 1325
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/camera.cpp
r1310 r1325 30 30 { 31 31 m_gamegroup = GAMEGROUP_BEFORE; 32 m_drawgroup = DRAWGROUP_CAMERA; 32 33 33 34 SetPosition(position); … … 65 66 { 66 67 WorldEntity::TickDraw(seconds); 68 69 Scene::GetDefault()->SetViewMatrix(m_view_matrix); 70 Scene::GetDefault()->SetProjMatrix(m_proj_matrix); 67 71 } 68 72 -
trunk/src/entity.h
r1310 r1325 55 55 { 56 56 DRAWGROUP_BEFORE = GAMEGROUP_END, 57 DRAWGROUP_CAMERA, 57 58 DRAWGROUP_DEFAULT, 58 59 DRAWGROUP_HUD, -
trunk/src/gradient.cpp
r1310 r1325 187 187 188 188 uni_mat = data->shader->GetUniformLocation("proj_matrix"); 189 data->shader->SetUniform(uni_mat, Video::GetProjMatrix());189 data->shader->SetUniform(uni_mat, Scene::GetDefault()->GetProjMatrix()); 190 190 uni_mat = data->shader->GetUniformLocation("view_matrix"); 191 data->shader->SetUniform(uni_mat, Video::GetViewMatrix());191 data->shader->SetUniform(uni_mat, Scene::GetDefault()->GetViewMatrix()); 192 192 uni_mat = data->shader->GetUniformLocation("model_matrix"); 193 193 data->shader->SetUniform(uni_mat, model_matrix); -
trunk/src/scene.cpp
r1241 r1325 36 36 }; 37 37 38 static Shader *stdshader = NULL;39 40 38 /* 41 39 * Scene implementation class … … 55 53 } 56 54 57 mat4 model_matrix; 55 mat4 m_model_matrix; 56 mat4 m_view_matrix; 57 mat4 m_proj_matrix; 58 58 59 59 Tile *tiles; 60 60 int ntiles; 61 float angle; 62 61 62 Shader *m_shader; 63 63 VertexDeclaration *m_vdecl; 64 64 VertexBuffer **bufs; … … 74 74 */ 75 75 76 Scene::Scene( float angle)76 Scene::Scene() 77 77 : data(new SceneData()) 78 78 { 79 data->m_model_matrix = mat4(1.f); 80 data->m_view_matrix = mat4(1.f); 81 data->m_proj_matrix = mat4::ortho(0, Video::GetSize().x, 82 0, Video::GetSize().y, -1000.f, 1000.f); 83 79 84 data->tiles = 0; 80 85 data->ntiles = 0; 81 data->angle = angle; 82 86 87 data->m_shader = 0; 83 88 data->bufs = 0; 84 89 data->nbufs = 0; … … 92 97 /* FIXME: this must be done while the GL context is still active. 93 98 * Change the code architecture to make sure of that. */ 94 /* XXX: The test is necessary because of a crash with PSGL. */ 99 /* FIXME: also, make sure we do not add code to Reset() that will 100 * reallocate stuff */ 101 Reset(); 102 103 delete data->m_vdecl; 104 delete data; 105 } 106 107 Scene *Scene::GetDefault() 108 { 109 if (!SceneData::scene) 110 SceneData::scene = new Scene(); 111 return SceneData::scene; 112 } 113 114 void Scene::Reset() 115 { 95 116 for (int i = 0; i < data->nbufs; i++) 96 117 delete data->bufs[i]; 97 118 free(data->bufs); 98 99 delete data->m_vdecl; 100 delete data; 101 } 102 103 Scene *Scene::GetDefault() 104 { 105 if (!SceneData::scene) 106 SceneData::scene = new Scene(0.0f); 107 return SceneData::scene; 108 } 109 110 void Scene::Reset() 111 { 112 if (SceneData::scene) 113 delete SceneData::scene; 114 SceneData::scene = NULL; 119 data->bufs = 0; 120 data->nbufs = 0; 121 } 122 123 void Scene::SetViewMatrix(mat4 const &m) 124 { 125 data->m_view_matrix = m; 126 } 127 128 void Scene::SetProjMatrix(mat4 const &m) 129 { 130 data->m_proj_matrix = m; 131 } 132 133 mat4 const &Scene::GetViewMatrix(void) 134 { 135 return data->m_view_matrix; 136 } 137 138 mat4 const &Scene::GetProjMatrix(void) 139 { 140 return data->m_proj_matrix; 115 141 } 116 142 … … 132 158 void Scene::Render() // XXX: rename to Blit() 133 159 { 134 if (! stdshader)160 if (!data->m_shader) 135 161 { 136 162 #if !defined _XBOX && !defined __CELLOS_LV2__ && !defined USE_D3D9 137 stdshader = Shader::Create(163 data->m_shader = Shader::Create( 138 164 # if !defined HAVE_GLES_2X 139 165 "#version 130\n" … … 217 243 "}\n"); 218 244 #else 219 stdshader = Shader::Create(245 data->m_shader = Shader::Create( 220 246 "void main(float4 in_Position : POSITION," 221 247 " float2 in_TexCoord : TEXCOORD0," … … 289 315 290 316 // XXX: debug stuff 291 data->model_matrix = mat4::translate(320.0f, 240.0f, 0.0f); 292 data->model_matrix *= mat4::rotate(-data->angle, 1.0f, 0.0f, 0.0f); 317 data->m_model_matrix = mat4::translate(320.0f, 240.0f, 0.0f); 293 318 #if 0 294 319 static float f = 0.0f; 295 320 f += 0.01f; 296 data->m odel_matrix *= mat4::rotate(6.0f * sinf(f), 1.0f, 0.0f, 0.0f);297 data->m odel_matrix *= mat4::rotate(17.0f * cosf(f), 0.0f, 0.0f, 1.0f);298 #endif 299 data->m odel_matrix *= mat4::translate(-320.0f, -240.0f, 0.0f);321 data->m_model_matrix *= mat4::rotate(6.0f * sinf(f), 1.0f, 0.0f, 0.0f); 322 data->m_model_matrix *= mat4::rotate(17.0f * cosf(f), 0.0f, 0.0f, 1.0f); 323 #endif 324 data->m_model_matrix *= mat4::translate(-320.0f, -240.0f, 0.0f); 300 325 // XXX: end of debug stuff 301 326 302 327 ShaderUniform uni_mat, uni_tex; 303 328 ShaderAttrib attr_pos, attr_tex; 304 attr_pos = stdshader->GetAttribLocation("in_Position", VertexUsage::Position, 0);305 attr_tex = stdshader->GetAttribLocation("in_TexCoord", VertexUsage::TexCoord, 0);306 307 stdshader->Bind();308 309 uni_mat = stdshader->GetUniformLocation("proj_matrix");310 stdshader->SetUniform(uni_mat, Video::GetProjMatrix());311 uni_mat = stdshader->GetUniformLocation("view_matrix");312 stdshader->SetUniform(uni_mat, Video::GetViewMatrix());313 uni_mat = stdshader->GetUniformLocation("model_matrix");314 stdshader->SetUniform(uni_mat, data->model_matrix);329 attr_pos = data->m_shader->GetAttribLocation("in_Position", VertexUsage::Position, 0); 330 attr_tex = data->m_shader->GetAttribLocation("in_TexCoord", VertexUsage::TexCoord, 0); 331 332 data->m_shader->Bind(); 333 334 uni_mat = data->m_shader->GetUniformLocation("proj_matrix"); 335 data->m_shader->SetUniform(uni_mat, data->m_proj_matrix); 336 uni_mat = data->m_shader->GetUniformLocation("view_matrix"); 337 data->m_shader->SetUniform(uni_mat, data->m_view_matrix); 338 uni_mat = data->m_shader->GetUniformLocation("model_matrix"); 339 data->m_shader->SetUniform(uni_mat, data->m_model_matrix); 315 340 316 341 #if defined USE_D3D9 || defined _XBOX 317 342 #else 318 uni_tex = stdshader->GetUniformLocation("in_Texture");319 stdshader->SetUniform(uni_tex, 0);343 uni_tex = data->m_shader->GetUniformLocation("in_Texture"); 344 data->m_shader->SetUniform(uni_tex, 0); 320 345 321 346 #if !defined HAVE_GLES_2X … … 386 411 data->ntiles = 0; 387 412 388 stdshader->Unbind();413 data->m_shader->Unbind(); 389 414 390 415 #if defined USE_D3D9 || defined _XBOX -
trunk/src/scene.h
r1198 r1325 29 29 { 30 30 public: 31 Scene( float angle);31 Scene(); 32 32 ~Scene(); 33 33 34 34 static Scene *GetDefault(); 35 static void Reset();36 35 36 void SetViewMatrix(mat4 const &m); 37 void SetProjMatrix(mat4 const &m); 38 mat4 const &GetViewMatrix(void); 39 mat4 const &GetProjMatrix(void); 40 41 void Reset(); 42 void Render(); 43 44 /* FIXME: this should be deprecated -- it doesn't really match 45 * the architecture we want to build */ 37 46 void AddTile(TileSet *tileset, int id, vec3 pos, int o, vec2 scale); 38 void Render();39 47 40 48 private: -
trunk/src/ticker.cpp
r1310 r1325 343 343 Profiler::Start(Profiler::STAT_TICK_DRAW); 344 344 345 Video::Clear();346 347 Scene::GetDefault();348 349 345 /* Tick objects for the draw loop */ 350 346 for (int i = Entity::DRAWGROUP_BEGIN; i < Entity::DRAWGROUP_END; i++) … … 352 348 switch (i) 353 349 { 350 case Entity::DRAWGROUP_BEGIN: 351 Scene::GetDefault()->Reset(); 352 Video::Clear(); 353 break; 354 354 case Entity::DRAWGROUP_HUD: 355 Scene::GetDefault()->Render();356 355 Video::SetDepth(false); 357 356 break; … … 376 375 #endif 377 376 } 378 } 379 380 Scene::GetDefault()->Render();381 Scene::Reset();377 378 /* Do this render step */ 379 Scene::GetDefault()->Render(); 380 } 382 381 383 382 Profiler::Stop(Profiler::STAT_TICK_DRAW); -
trunk/src/video.cpp
r1303 r1325 52 52 53 53 private: 54 static mat4 proj_matrix , view_matrix;54 static mat4 proj_matrix; 55 55 static ivec2 saved_viewport; 56 56 #if defined USE_D3D9 … … 66 66 67 67 mat4 VideoData::proj_matrix; 68 mat4 VideoData::view_matrix;69 68 ivec2 VideoData::saved_viewport(0, 0); 70 69 … … 195 194 VideoData::proj_matrix = proj * trans; 196 195 } 197 198 VideoData::view_matrix = mat4(1.0f);199 196 } 200 197 … … 298 295 } 299 296 300 mat4 const & Video::GetProjMatrix()301 {302 return VideoData::proj_matrix;303 }304 305 mat4 const & Video::GetViewMatrix()306 {307 return VideoData::view_matrix;308 }309 310 297 } /* namespace lol */ 311 298 -
trunk/src/video.h
r1199 r1325 34 34 static void Capture(uint32_t *buffer); 35 35 static ivec2 GetSize(); 36 static mat4 const & GetProjMatrix();37 static mat4 const & GetViewMatrix();38 36 }; 39 37
Note: See TracChangeset
for help on using the changeset viewer.