ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/rendercache.c
(Generate patch)

Comparing deliantra/Deliantra-Client/rendercache.c (file contents):
Revision 1.1 by root, Sat Aug 11 11:07:09 2007 UTC vs.
Revision 1.3 by root, Sat Aug 11 13:46:40 2007 UTC

1typedef struct { 1typedef struct {
2 GLenum mode; 2 GLenum mode;
3 GLenum format; // GL_T2F_V3F, GL_V2F 3 GLenum format; // 0, GL_T2F_V3F, GL_V2F
4 GLint texname; 4 GLint texname;
5 unsigned char r, g, b, a; 5 unsigned char r, g, b, a;
6} rc_key_t; 6} rc_key_t;
7 7
8typedef struct { 8typedef struct {
48} 48}
49 49
50static void 50static void
51rc_v2f (rc_array_t *arr, float x, float y) 51rc_v2f (rc_array_t *arr, float x, float y)
52{ 52{
53 STRLEN len = SvCUR (arr) + sizeof (float) * 5; 53 STRLEN len = SvCUR (arr) + sizeof (float) * 2;
54 SvGROW (arr, len); 54 SvGROW (arr, len);
55 55
56 ((float *)SvEND (arr))[0] = x; 56 ((float *)SvEND (arr))[0] = x;
57 ((float *)SvEND (arr))[1] = y; 57 ((float *)SvEND (arr))[1] = y;
58 58
87 rc_array_t *arr = HeVAL (he); 87 rc_array_t *arr = HeVAL (he);
88 STRLEN len; 88 STRLEN len;
89 char *arr_pv = SvPV (arr, len); 89 char *arr_pv = SvPV (arr, len);
90 GLsizei stride; 90 GLsizei stride;
91 91
92 stride = key->format == GL_T2F_V3F ? sizeof (float) * 5
93 : key->format == GL_V2F ? sizeof (float) * 2
94 : 65536;
95
96 if (key->texname) 92 if (key->texname)
97 { 93 {
98 glBindTexture (GL_TEXTURE_2D, key->texname); 94 glBindTexture (GL_TEXTURE_2D, key->texname);
99 glEnable (GL_TEXTURE_2D); 95 glEnable (GL_TEXTURE_2D);
100 } 96 }
101 else 97 else
102 glDisable (GL_TEXTURE_2D); 98 glDisable (GL_TEXTURE_2D);
103 99
104 glColor4ub (key->r, key->g, key->b, key->a); 100 glColor4ub (key->r, key->g, key->b, key->a);
101
102 stride = key->format == GL_T2F_V3F ? sizeof (float) * 5
103 : key->format == GL_V2F ? sizeof (float) * 2
104 : 65536;
105
105 glInterleavedArrays (key->format, 0, (void *)arr_pv); 106 glInterleavedArrays (key->format, 0, (void *)arr_pv);
106 glDrawArrays (key->mode, 0, len / stride); 107 glDrawArrays (key->mode, 0, len / stride);
107 } 108 }
108 109
109 glDisable (GL_TEXTURE_2D); 110 glDisable (GL_TEXTURE_2D);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines