annotate libvo/matrixview.c @ 33672:e576232a39d5

Prevent balance from hopping. Only recalculate the balance if the balance has changed, not if just the volume has changed. Because (at least with my soundcard) not all volume values can be stored, but seem to be mapped onto a discrete value set, recalculation the balance from the volume isn't accurate enough.
author ib
date Tue, 28 Jun 2011 18:16:06 +0000
parents 55917a674d7d
children a70e8abec089
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
1 /*
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
2 * Copyright (C) 2003 Alex Zolotov <nightradio@knoppix.ru>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
3 * Mucked with by Tugrul Galatali <tugrul@galatali.com>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
4 *
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
5 * MatrixView is free software; you can redistribute it and/or modify
30182
ab027cdbba31 Change license terms for matrixview to GPLv2 "or later", all known
reimar
parents: 30160
diff changeset
6 * it under the terms of the GNU General Public License as published by
ab027cdbba31 Change license terms for matrixview to GPLv2 "or later", all known
reimar
parents: 30160
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
ab027cdbba31 Change license terms for matrixview to GPLv2 "or later", all known
reimar
parents: 30160
diff changeset
8 * (at your option) any later version.
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
9 *
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
10 * MatrixView is distributed in the hope that it will be useful,
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
13 * GNU General Public License for more details.
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
14 *
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License along
30160
f91c628dc701 Refer to MatrixView instead of MPlayer in code taken from MatrixView.
diego
parents: 30153
diff changeset
16 * with MatrixView; if not, write to the Free Software Foundation, Inc.,
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
18 */
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
19
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
20 /**
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
21 * Ported to an MPlayer video out plugin by Pigeon <pigeon at pigeond.net>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
22 * August 2006
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
23 */
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
24
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
25 #include <math.h>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
26 #include <stdio.h>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
27 #include <stdint.h>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
28 #include <stdlib.h>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
29 #include <string.h>
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
30 #include "gl_common.h"
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
31 #include "matrixview.h"
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
32 #include "matrixview_font.h"
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
33
30153
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
34 static float matrix_contrast = 1.5;
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
35 static float matrix_brightness = 1.0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
36
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
37 // Settings for our light. Try playing with these (or add more lights).
30153
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
38 static float Light_Ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f };
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
39 static float Light_Diffuse[] = { 1.2f, 1.2f, 1.2f, 1.0f };
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
40 static float Light_Position[] = { 2.0f, 2.0f, 0.0f, 1.0f };
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
41
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
42 static const uint8_t flare[4][4] = {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
43 { 0, 0, 0, 0},
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
44 { 0, 180, 0, 0},
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
45 { 0, 0, 0, 0},
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
46 { 0, 0, 0, 0}
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
47 };
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
48
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
49 #define MAX_TEXT_X 0x4000
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
50 #define MAX_TEXT_Y 0x4000
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
51 static int text_x = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
52 static int text_y = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
53 #define _text_x text_x/2
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
54 #define _text_y text_y/2
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
55
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
56 // Scene position
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
57 #define Z_Off -128.0f
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
58 #define Z_Depth 8
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
59
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
60 static uint8_t *speed;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
61 static uint8_t *text;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
62 static uint8_t *text_light;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
63 static float *text_depth;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
64
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
65 static float *bump_pic;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
66
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
67 static void draw_char(int num, float light, float x, float y, float z)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
68 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
69 float tx, ty;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
70 int num2, num3;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
71
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
72 num &= 63;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
73 //light = light / 255; //light=7-light;num+=(light*60);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
74 light = light / 255 * matrix_brightness;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
75 num2 = num / 10;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
76 num3 = num - (num2 * 10);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
77 ty = (float)num2 / 7;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
78 tx = (float)num3 / 10;
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
79 mpglNormal3f(0.0f, 0.0f, 1.0f); // Needed for lighting
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
80 mpglColor4f(0.0, 1.0, 0.0, light); // Basic polygon color
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
81
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
82 mpglTexCoord2f(tx, ty);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
83 mpglVertex3f(x, y, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
84 mpglTexCoord2f(tx + 0.1, ty);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
85 mpglVertex3f(x + 1, y, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
86 mpglTexCoord2f(tx + 0.1, ty + 0.166);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
87 mpglVertex3f(x + 1, y - 1, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
88 mpglTexCoord2f(tx, ty + 0.166);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
89 mpglVertex3f(x, y - 1, z);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
90 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
91
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
92 static void draw_illuminatedchar(int num, float x, float y, float z)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
93 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
94 float tx, ty;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
95 int num2, num3;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
96
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
97 num2 = num / 10;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
98 num3 = num - (num2 * 10);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
99 ty = (float)num2 / 7;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
100 tx = (float)num3 / 10;
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
101 mpglNormal3f(0.0f, 0.0f, 1.0f); // Needed for lighting
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
102 mpglColor4f(1.0, 1.0, 1.0, .5); // Basic polygon color
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
103
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
104 mpglTexCoord2f(tx, ty);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
105 mpglVertex3f(x, y, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
106 mpglTexCoord2f(tx + 0.1, ty);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
107 mpglVertex3f(x + 1, y, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
108 mpglTexCoord2f(tx + 0.1, ty + 0.166);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
109 mpglVertex3f(x + 1, y - 1, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
110 mpglTexCoord2f(tx, ty + 0.166);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
111 mpglVertex3f(x, y - 1, z);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
112 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
113
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
114 static void draw_flare(float x, float y, float z) //flare
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
115 {
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
116 mpglNormal3f(0.0f, 0.0f, 1.0f); // Needed for lighting
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
117 mpglColor4f(1.0, 1.0, 1.0, .8); // Basic polygon color
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
118
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
119 mpglTexCoord2f(0, 0);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
120 mpglVertex3f(x - 1, y + 1, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
121 mpglTexCoord2f(0.75, 0);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
122 mpglVertex3f(x + 2, y + 1, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
123 mpglTexCoord2f(0.75, 0.75);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
124 mpglVertex3f(x + 2, y - 2, z);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
125 mpglTexCoord2f(0, 0.75);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
126 mpglVertex3f(x - 1, y - 2, z);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
127 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
128
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
129 static void draw_text(uint8_t *pic)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
130 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
131 int x, y;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
132 int p = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
133 int c, c_pic;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
134 int pic_fade = 255;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
135
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
136 for (y = _text_y; y > -_text_y; y--) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
137 for (x = -_text_x; x < _text_x; x++) {
30153
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
138 c = text_light[p] - (text[p] >> 1);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
139 c += pic_fade;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
140 if (c > 255)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
141 c = 255;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
142
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
143 if (pic) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
144 // Original code
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
145 //c_pic = pic[p] * matrix_contrast - (255 - pic_fade);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
146
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
147 c_pic = (255 - pic[p]) * matrix_contrast - (255 - pic_fade);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
148
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
149 if (c_pic < 0)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
150 c_pic = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
151
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
152 c -= c_pic;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
153
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
154 if (c < 0)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
155 c = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
156
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
157 bump_pic[p] = (255.0f - c_pic) / (256 / Z_Depth);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
158 } else {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
159 bump_pic[p] = Z_Depth;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
160 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
161
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
162 if (text[p] && c > 10)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
163 draw_char(text[p] + 1, c, x, y, text_depth[p] + bump_pic[p]);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
164
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
165 if (text_depth[p] < 0.1)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
166 text_depth[p] = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
167 else
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
168 text_depth[p] /= 1.1;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
169
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
170 if (text_light[p] > 128 && text_light[p + text_x] < 10)
30153
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
171 draw_illuminatedchar(text[p] + 1, x, y,
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
172 text_depth[p] + bump_pic[p]);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
173
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
174 p++;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
175 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
176 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
177 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
178
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
179 static void draw_flares(void)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
180 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
181 float x, y;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
182 int p = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
183
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
184 for (y = _text_y; y > -_text_y; y--) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
185 for (x = -_text_x; x < _text_x; x++) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
186 if (text_light[p] > 128 && text_light[p + text_x] < 10)
30153
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
187 draw_flare(x, y, text_depth[p] + bump_pic[p]);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
188 p++;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
189 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
190 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
191 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
192
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
193 static void scroll(double dCurrentTime)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
194 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
195 int a, s, polovina;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
196 //static double dLastCycle = -1;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
197 static double dLastMove = -1;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
198
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
199 if (dCurrentTime - dLastMove > 1.0 / (text_y / 1.5)) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
200 dLastMove = dCurrentTime;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
201
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
202 polovina = text_x * text_y / 2;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
203 s = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
204 for (a = text_x * text_y + text_x - 1; a >= text_x; a--) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
205 if (speed[s])
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
206 text_light[a] = text_light[a - text_x]; //scroll light table down
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
207 s++;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
208 if (s >= text_x)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
209 s = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
210 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
211 memmove(text_light + text_x, text_light, text_x * text_y);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
212 memset(text_light, 253, text_x);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
213
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
214 s = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
215 for (a = polovina; a < text_x * text_y; a++) {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
216 if (text_light[a] == 255)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
217 text_light[s] = text_light[s + text_x] >> 1; //make black bugs in top line
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
218
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
219 s++;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
220
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
221 if (s >= text_x)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
222 s = 0;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
223 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
224 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
225 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
226
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
227 static void make_change(double dCurrentTime)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
228 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
229 int r = rand() % text_x * text_y;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
230
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
231 text[r] += 133; //random bugs
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
232
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
233 r = rand() % (4 * text_x);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
234 if (r < text_x && text_light[r])
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
235 text_light[r] = 255; //white bugs
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
236
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
237 scroll (dCurrentTime);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
238 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
239
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
240
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
241 static void make_text(void)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
242 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
243 int a;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
244
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
245 for (a = 0; a < text_x * text_y; a++)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
246 text[a] = rand() >> 8; // avoid the lowest bits of rand()
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
247
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
248 for (a = 0; a < text_x; a++)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
249 speed[a] = rand() >= RAND_MAX / 2;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
250 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
251
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
252 static void ourBuildTextures(void)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
253 {
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
254 mpglTexImage2D(GL_TEXTURE_2D, 0, 1, 128, 64, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE,
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
255 font_texture);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
256 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
257 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
258
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
259 mpglBindTexture(GL_TEXTURE_2D, 1);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
260 mpglTexImage2D(GL_TEXTURE_2D, 0, 1, 4, 4, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE,
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
261 flare);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
262 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
263 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
264
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
265 // Some pretty standard settings for wrapping and filtering.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
266 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
267 mpglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
268 mpglBindTexture(GL_TEXTURE_2D, 0);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
269 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
270
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
271 void matrixview_init(int w, int h)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
272 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
273 make_text();
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
274
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
275 ourBuildTextures();
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
276
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
277 // Color to clear color buffer to.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
278 mpglClearColor(0.0f, 0.0f, 0.0f, 0.0f);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
279
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
280 // Depth to clear depth buffer to; type of test.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
281 mpglClearDepth(1.0);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
282 mpglDepthFunc(GL_LESS);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
283
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
284 // Enables Smooth Color Shading; try GL_FLAT for (lack of) fun.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
285 mpglShadeModel(GL_SMOOTH);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
286
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
287 // Set up a light, turn it on.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
288 mpglLightfv(GL_LIGHT1, GL_POSITION, Light_Position);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
289 mpglLightfv(GL_LIGHT1, GL_AMBIENT, Light_Ambient);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
290 mpglLightfv(GL_LIGHT1, GL_DIFFUSE, Light_Diffuse);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
291 mpglEnable(GL_LIGHT1);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
292
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
293 // A handy trick -- have surface material mirror the color.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
294 mpglColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
295 mpglEnable(GL_COLOR_MATERIAL);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
296
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
297 // Allow adjusting of texture color via glColor
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
298 mpglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
299
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
300 matrixview_reshape(w, h);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
301 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
302
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
303
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
304 void matrixview_reshape(int w, int h)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
305 {
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
306 mpglViewport(0, 0, w, h);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
307
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
308 mpglMatrixMode(GL_PROJECTION);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
309 mpglLoadIdentity();
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
310 mpglFrustum(-_text_x, _text_x, -_text_y, _text_y, -Z_Off - Z_Depth, -Z_Off);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
311
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
312 mpglMatrixMode(GL_MODELVIEW);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
313 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
314
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
315
30153
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
316 void matrixview_draw(int w, int h, double currentTime, float frameTime,
4e0755091f55 prettyprinting cosmetics
diego
parents: 30140
diff changeset
317 uint8_t *data)
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
318 {
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
319 mpglEnable(GL_BLEND);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
320 mpglEnable(GL_TEXTURE_2D);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
321
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
322 mpglDisable(GL_LIGHTING);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
323 mpglBlendFunc(GL_SRC_ALPHA, GL_ONE);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
324 mpglDisable(GL_DEPTH_TEST);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
325
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
326 mpglMatrixMode(GL_MODELVIEW);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
327 mpglLoadIdentity();
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
328 mpglTranslated(0.0f, 0.0f, Z_Off);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
329
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
330 // Clear the color and depth buffers.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
331 mpglClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
332
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
333 // OK, let's start drawing our planer quads.
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
334 mpglBegin(GL_QUADS);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
335 draw_text(data);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
336 mpglEnd();
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
337
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
338 mpglBindTexture(GL_TEXTURE_2D, 1);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
339 mpglBegin(GL_QUADS);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
340 draw_flares();
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
341 mpglEnd();
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
342 mpglBindTexture(GL_TEXTURE_2D, 0);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
343
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
344 make_change(currentTime);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
345
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
346 mpglLoadIdentity();
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30182
diff changeset
347 mpglMatrixMode(GL_PROJECTION);
30140
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
348 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
349
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
350 void matrixview_contrast_set(float contrast)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
351 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
352 matrix_contrast = contrast;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
353 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
354
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
355 void matrixview_brightness_set(float brightness)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
356 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
357 matrix_brightness = brightness;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
358 }
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
359
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
360
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
361 void matrixview_matrix_resize(int w, int h)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
362 {
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
363 int elems;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
364 free(speed);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
365 speed = NULL;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
366 free(text);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
367 text = NULL;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
368 free(text_light);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
369 text_light = NULL;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
370 free(text_depth);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
371 text_depth = NULL;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
372 if (w > MAX_TEXT_X || h > MAX_TEXT_Y)
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
373 return;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
374 elems = w * (h + 1);
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
375 speed = calloc(w, sizeof(*speed));
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
376 text = calloc(elems, sizeof(*text));
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
377 text_light = calloc(elems, sizeof(*text_light));
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
378 text_depth = calloc(elems, sizeof(*text_depth));
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
379 bump_pic = calloc(elems, sizeof(*bump_pic));
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
380 text_x = w;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
381 text_y = h;
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
382 make_text();
12a49e9ca30e Finally add matrixview vo.
reimar
parents:
diff changeset
383 }