comparison libvo/matrixview.c @ 36245:081cb3fca68f

Use only one single texture.
author reimar
date Wed, 12 Jun 2013 18:54:19 +0000
parents ca4ce05e1930
children b474a1e925c0
comparison
equal deleted inserted replaced
36244:ca4ce05e1930 36245:081cb3fca68f
32 #include "matrixview_font.h" 32 #include "matrixview_font.h"
33 33
34 static float matrix_contrast = 1.5; 34 static float matrix_contrast = 1.5;
35 static float matrix_brightness = 1.0; 35 static float matrix_brightness = 1.0;
36 36
37 static const uint8_t flare[4][4] = {
38 { 0, 0, 0, 0},
39 { 0, 180, 0, 0},
40 { 0, 0, 0, 0},
41 { 0, 0, 0, 0}
42 };
43
44 #define MAX_TEXT_X 0x4000 37 #define MAX_TEXT_X 0x4000
45 #define MAX_TEXT_Y 0x4000 38 #define MAX_TEXT_Y 0x4000
46 static int text_x = 0; 39 static int text_x = 0;
47 static int text_y = 0; 40 static int text_y = 0;
48 #define _text_x (text_x/2) 41 #define _text_x (text_x/2)
107 100
108 static void draw_flare(float x, float y, float z) //flare 101 static void draw_flare(float x, float y, float z) //flare
109 { 102 {
110 mpglColor4ub(204, 204, 204, 255); // Basic polygon color 103 mpglColor4ub(204, 204, 204, 255); // Basic polygon color
111 104
112 mpglTexCoord2f(0, 0); 105 mpglTexCoord2f(1.0 - 4.0/128, 1.0 - 4.0/64);
113 mpglVertex3f(x - 1, y + 1, z); 106 mpglVertex3f(x - 1, y + 1, z);
114 mpglTexCoord2f(0.75, 0); 107 mpglTexCoord2f(1.0 - 1.0/128, 1.0 - 4.0/64);
115 mpglVertex3f(x + 2, y + 1, z); 108 mpglVertex3f(x + 2, y + 1, z);
116 mpglTexCoord2f(0.75, 0.75); 109 mpglTexCoord2f(1.0 - 1.0/128, 1.0 - 1.0/64);
117 mpglVertex3f(x + 2, y - 2, z); 110 mpglVertex3f(x + 2, y - 2, z);
118 mpglTexCoord2f(0, 0.75); 111 mpglTexCoord2f(1.0 - 4.0/128, 1.0 - 1.0/64);
119 mpglVertex3f(x - 1, y - 2, z); 112 mpglVertex3f(x - 1, y - 2, z);
120 } 113 }
121 114
122 static void draw_text(const uint8_t *pic) 115 static void draw_text(const uint8_t *pic)
123 { 116 {
246 { 239 {
247 mpglTexImage2D(GL_TEXTURE_2D, 0, 1, 128, 64, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, 240 mpglTexImage2D(GL_TEXTURE_2D, 0, 1, 128, 64, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE,
248 font_texture); 241 font_texture);
249 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 242 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
250 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 243 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
251
252 mpglBindTexture(GL_TEXTURE_2D, 1);
253 mpglTexImage2D(GL_TEXTURE_2D, 0, 1, 4, 4, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE,
254 flare);
255 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
256 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
257
258 // Some pretty standard settings for wrapping and filtering.
259 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
260 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
261 mpglBindTexture(GL_TEXTURE_2D, 0);
262 } 244 }
263 245
264 void matrixview_init(int w, int h) 246 void matrixview_init(int w, int h)
265 { 247 {
266 make_text(); 248 make_text();
306 mpglClear(GL_COLOR_BUFFER_BIT); 288 mpglClear(GL_COLOR_BUFFER_BIT);
307 289
308 // OK, let's start drawing our planer quads. 290 // OK, let's start drawing our planer quads.
309 mpglBegin(GL_QUADS); 291 mpglBegin(GL_QUADS);
310 draw_text(data); 292 draw_text(data);
311 mpglEnd();
312
313 mpglBindTexture(GL_TEXTURE_2D, 1);
314 mpglBegin(GL_QUADS);
315 draw_flares(); 293 draw_flares();
316 mpglEnd(); 294 mpglEnd();
317 mpglBindTexture(GL_TEXTURE_2D, 0);
318 295
319 make_change(currentTime); 296 make_change(currentTime);
320 } 297 }
321 298
322 void matrixview_contrast_set(float contrast) 299 void matrixview_contrast_set(float contrast)