Changeset 2091
- Timestamp:
- Nov 19, 2012, 1:45:44 AM (10 years ago)
- Location:
- trunk/tools/neercs/video
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/neercs/video/text-render.cpp
r2090 r2091 45 45 46 46 m_shader = Shader::Create(lolfx_text); 47 m_coord = m_shader->GetAttribLocation("in_Position",48 VertexUsage::Position, 0);49 47 m_color = m_shader->GetAttribLocation("in_Attr", 50 48 VertexUsage::Color, 0); … … 53 51 m_texture = m_shader->GetUniformLocation("u_Texture"); 54 52 m_transform = m_shader->GetUniformLocation("u_Transform"); 55 m_ pointsize = m_shader->GetUniformLocation("u_PointSize");53 m_datasize = m_shader->GetUniformLocation("u_DataSize"); 56 54 m_vdecl 57 = new VertexDeclaration(VertexStream<vec2>(VertexUsage::Position), 58 VertexStream<uint32_t>(VertexUsage::Color), 55 = new VertexDeclaration(VertexStream<uint32_t>(VertexUsage::Color), 59 56 VertexStream<uint32_t>(VertexUsage::Color)); 60 57 … … 64 61 void TextRender::CreateBuffers() 65 62 { 66 m_vbo1 = new VertexBuffer(m_cells * sizeof(vec2));67 vec2 *vertices = (vec2 *)m_vbo1->Lock(0, 0);68 for (int j = 0; j < m_canvas_size.y; j++)69 for (int i = 0; i < m_canvas_size.x; i++)70 vertices[j * m_canvas_size.x + i] = vec2(i, j);71 m_vbo1->Unlock();72 73 63 m_vbo2 = new VertexBuffer(m_cells * sizeof(int32_t)); 74 64 m_vbo3 = new VertexBuffer(m_cells * sizeof(int32_t)); … … 84 74 if (current_size != m_canvas_size) 85 75 { 86 delete m_vbo1;87 76 delete m_vbo2; 88 77 delete m_vbo3; … … 141 130 m_shader->SetUniform(m_texture, 0); 142 131 m_shader->SetUniform(m_transform, xform); 143 m_shader->SetUniform(m_ pointsize, (float)max(m_font_size.x, m_font_size.y));144 m_vdecl->SetStream(m_vbo1, m_coord);132 m_shader->SetUniform(m_datasize, vec2(m_canvas_size.x, 133 max(m_font_size.x, m_font_size.y))); 145 134 m_vdecl->SetStream(m_vbo2, m_color); 146 135 m_vdecl->SetStream(m_vbo3, m_char); -
trunk/tools/neercs/video/text-render.h
r2090 r2091 23 23 24 24 Shader *m_shader; 25 ShaderAttrib m_co ord, m_color, m_char;26 ShaderUniform m_texture, m_transform, m_ pointsize;25 ShaderAttrib m_color, m_char; 26 ShaderUniform m_texture, m_transform, m_datasize; 27 27 VertexDeclaration *m_vdecl; 28 VertexBuffer *m_vbo 1, *m_vbo2, *m_vbo3;28 VertexBuffer *m_vbo2, *m_vbo3; 29 29 30 30 FrameBuffer *m_fbo; -
trunk/tools/neercs/video/text.lolfx
r2090 r2091 5 5 #define HAVE_UINT 1 6 6 7 attribute vec2 in_Position;8 7 #if HAVE_UINT 9 8 attribute uint in_Char, in_Attr; … … 16 15 varying vec2 pass_UV; 17 16 18 uniform float u_PointSize;17 uniform vec2 u_DataSize; 19 18 uniform mat4 u_Transform; 20 19 … … 58 57 59 58 // This only works with glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); 60 gl_PointSize = u_ PointSize;59 gl_PointSize = u_DataSize[1]; 61 60 62 gl_Position = u_Transform * vec4(in_Position, 0.0, 1.0); 61 vec2 coord = vec2(gl_VertexID % int(u_DataSize[0]), 62 gl_VertexID / int(u_DataSize[0])); 63 gl_Position = u_Transform * vec4(coord, 0.0, 1.0); 63 64 } 64 65
Note: See TracChangeset
for help on using the changeset viewer.