瀏覽代碼

Remove unused transform array and use alpha blending when rendering sprites

Daniele Bartolini 12 年之前
父節點
當前提交
76b539f5c4
共有 2 個文件被更改,包括 6 次插入5 次删除
  1. 6 2
      engine/RenderWorld.cpp
  2. 0 3
      engine/RenderWorld.h

+ 6 - 2
engine/RenderWorld.cpp

@@ -89,7 +89,6 @@ static const char* texture_fragment =
 RenderWorld::RenderWorld()
 	: m_mesh_pool(default_allocator(), MAX_MESHES, sizeof(Mesh))
 	, m_mesh(default_allocator())
-	, m_transform(default_allocator())
 	, m_sprite(default_allocator())
 {
 	Renderer* r = device()->renderer();
@@ -214,7 +213,12 @@ void RenderWorld::update(const Matrix4x4& view, const Matrix4x4& projection, uin
 			sprite.m_animator->play_frame();
 		}
 
-		r->set_state(STATE_DEPTH_WRITE | STATE_COLOR_WRITE | STATE_ALPHA_WRITE | STATE_CULL_CW);
+		r->set_state(STATE_DEPTH_WRITE 
+			| STATE_COLOR_WRITE 
+			| STATE_ALPHA_WRITE 
+			| STATE_CULL_CW 
+			| STATE_BLEND_EQUATION_ADD 
+			| STATE_BLEND_FUNC(STATE_BLEND_FUNC_SRC_ALPHA, STATE_BLEND_FUNC_ONE_MINUS_SRC_ALPHA));
 		r->set_vertex_buffer(sprite.m_vb);
 		r->set_index_buffer(sprite.m_ib);
 		r->set_program(texture_program);

+ 0 - 3
engine/RenderWorld.h

@@ -75,9 +75,6 @@ private:
 	PoolAllocator					m_mesh_pool;
 	IdArray<MAX_MESHES, Mesh*>		m_mesh;
 
-	// Mesh transforms
-	IdArray<MAX_MESHES, Matrix4x4>	m_transform;
-
 	IdTable<MAX_SPRITES>	m_sprite_table;
 	uint32_t				m_sprite_sparse_to_packed[MAX_SPRITES];
 	List<Sprite>			m_sprite;