Changeset 666
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/scene.cpp
r665 r666 149 149 150 150 #if LOL_EXPERIMENTAL 151 GLuint uni ;151 GLuint uni, attr_pos, attr_tex; 152 152 uni = stdshader->GetUniformLocation("model_matrix"); 153 attr_pos = stdshader->GetAttribLocation("in_Position"); 154 attr_tex = stdshader->GetAttribLocation("in_TexCoord"); 155 153 156 glUniformMatrix4fv(uni, 1, GL_FALSE, &model_matrix[0][0]); 154 155 float *vertices = new float[18];156 vertices[0] = 0.0f; vertices[1] = 480.0f; vertices[2] = 0.0f;157 vertices[3] = 640.0f; vertices[4] = 480.0f; vertices[5] = 0.0f;158 vertices[6] = 0.0f; vertices[7] = 0.0f; vertices[8] = 0.0f;159 160 vertices[9] = 640.0f; vertices[10] = 0.0f; vertices[11] = 0.0f;161 vertices[12] = 0.0f; vertices[13] = 0.0f; vertices[14] = 0.0f;162 vertices[15] = 640.0f; vertices[16] = 480.0f; vertices[17] = 0.0f;163 164 const GLfloat colors[6][3] = {165 { 0.0, 0.0, 1.0 },166 { 1.0, 0.0, 0.0 },167 { 0.0, 1.0, 0.0 },168 { 1.0, 1.0, 0.0 },169 { 0.0, 1.0, 0.0 },170 { 1.0, 0.0, 0.0 } };171 172 const GLfloat tex[6][2] = {173 { 0.0, 0.0 },174 { 1.0, 0.0 },175 { 0.0, 1.0 },176 { 1.0, 1.0 },177 { 0.0, 1.0 },178 { 1.0, 0.0 } };179 180 GLuint vao, vbo[3], attr;181 182 glGenVertexArrays(1, &vao);183 glBindVertexArray(vao);184 glGenBuffers(3, &vbo[0]);185 186 attr = stdshader->GetAttribLocation("in_Position");187 glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);188 glBufferData(GL_ARRAY_BUFFER, 18 * sizeof(GLfloat), vertices, GL_STATIC_DRAW);189 glVertexAttribPointer(attr, 3, GL_FLOAT, GL_FALSE, 0, 0);190 glEnableVertexAttribArray(attr);191 192 attr = stdshader->GetAttribLocation("in_Color");193 glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);194 glBufferData(GL_ARRAY_BUFFER, 18 * sizeof(GLfloat), colors, GL_STATIC_DRAW);195 glVertexAttribPointer(attr, 3, GL_FLOAT, GL_FALSE, 0, 0);196 glEnableVertexAttribArray(attr);197 198 attr = stdshader->GetAttribLocation("in_TexCoord");199 glBindBuffer(GL_ARRAY_BUFFER, vbo[2]);200 glBufferData(GL_ARRAY_BUFFER, 12 * sizeof(GLfloat), tex, GL_STATIC_DRAW);201 glVertexAttribPointer(attr, 2, GL_FLOAT, GL_FALSE, 0, 0);202 glEnableVertexAttribArray(attr);203 204 delete[] vertices;205 206 stdshader->Bind();207 glBindVertexArray(vao);208 Tiler::Bind(1 << 16);209 glDrawArrays(GL_TRIANGLES, 0, 6);210 glBindVertexArray(0);211 212 #else213 157 glEnable(GL_DEPTH_TEST); 214 158 glDepthFunc(GL_LEQUAL); … … 217 161 glEnable(GL_BLEND); 218 162 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 163 #else 164 glEnable(GL_DEPTH_TEST); 165 glDepthFunc(GL_LEQUAL); 166 glEnable(GL_ALPHA_TEST); 167 glAlphaFunc(GL_GEQUAL, 0.01f); 168 glEnable(GL_BLEND); 169 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 219 170 220 171 glLoadIdentity(); 221 172 glMultMatrixf(&model_matrix[0][0]); 173 #endif 222 174 223 175 for (int buf = 0, i = 0, n; i < data->ntiles; i = n, buf += 2) … … 247 199 } 248 200 201 #if LOL_EXPERIMENTAL 202 GLuint vao, vbo[2], attr; 203 204 glGenVertexArrays(1, &vao); 205 glBindVertexArray(vao); 206 glGenBuffers(2, &vbo[0]); 207 208 glBindBuffer(GL_ARRAY_BUFFER, vbo[0]); 209 glBufferData(GL_ARRAY_BUFFER, 18 * (n - i) * sizeof(GLfloat), vertex, GL_STATIC_DRAW); 210 glVertexAttribPointer(attr_pos, 3, GL_FLOAT, GL_FALSE, 0, 0); 211 glEnableVertexAttribArray(attr_pos); 212 213 glBindBuffer(GL_ARRAY_BUFFER, vbo[1]); 214 glBufferData(GL_ARRAY_BUFFER, 12 * (n - i) * sizeof(GLfloat), texture, GL_STATIC_DRAW); 215 glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, 0); 216 glEnableVertexAttribArray(attr_tex); 217 218 stdshader->Bind(); 219 #else 249 220 glEnableClientState(GL_VERTEX_ARRAY); 250 221 glEnableClientState(GL_TEXTURE_COORD_ARRAY); … … 259 230 texture, GL_DYNAMIC_DRAW); 260 231 glTexCoordPointer(2, GL_FLOAT, 0, NULL); 232 #endif 261 233 262 234 Tiler::Bind(data->tiles[i].code); 263 235 glDrawArrays(GL_TRIANGLES, 0, (n - i) * 6); 264 236 237 #if LOL_EXPERIMENTAL 238 glBindVertexArray(0); 239 #else 265 240 glDisableClientState(GL_VERTEX_ARRAY); 266 241 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 242 #endif 267 243 268 244 free(vertex); 269 245 free(texture); 270 246 } 271 #endif272 247 273 248 free(data->tiles); -
trunk/src/video.cpp
r665 r666 63 63 "void main()\n" 64 64 "{\n" 65 " gl_FragColor = 0.5 * (texture2D(in_Texture, vec2(gl_TexCoord[0]))\n" 66 " + vec4(pass_Color, 1.0));\n" 65 //" gl_FragColor = 0.5 * (texture2D(in_Texture, vec2(gl_TexCoord[0]))\n" 66 //" + vec4(pass_Color, 1.0));\n" 67 " gl_FragColor = texture2D(in_Texture, vec2(gl_TexCoord[0]));\n" 67 68 "}\n"; 68 69 #endif
Note: See TracChangeset
for help on using the changeset viewer.