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

Comparing deliantra/Deliantra-Client/Client.xs (file contents):
Revision 1.53 by root, Wed Apr 19 21:38:04 2006 UTC vs.
Revision 1.55 by root, Thu Apr 20 08:11:56 2006 UTC

414 SDL_WM_SetCaption ("Crossfire+ Client " VERSION, "Crossfire+"); 414 SDL_WM_SetCaption ("Crossfire+ Client " VERSION, "Crossfire+");
415 OUTPUT: 415 OUTPUT:
416 RETVAL 416 RETVAL
417 417
418void 418void
419SDL_GL_SwapBuffers ()
420
421void
419SDL_PollEvent () 422SDL_PollEvent ()
420 PPCODE: 423 PPCODE:
421{ 424{
422 SDL_Event ev; 425 SDL_Event ev;
423 426
930 cell->darkness = -1; 933 cell->darkness = -1;
931 } 934 }
932} 935}
933 936
934SV * 937SV *
935mapmap (CFClient::Map self, int w, int h) 938mapmap (CFClient::Map self, int x0, int y0, int w, int h)
936 CODE: 939 CODE:
937{ 940{
938 int x0, x1, x; 941 int x1, x;
939 int y0, y1, y; 942 int y1, y;
940 int z; 943 int z;
941 SV *map_sv = newSV (w * h * sizeof (uint32_t)); 944 SV *map_sv = newSV (w * h * sizeof (uint32_t));
942 uint32_t *map = (uint32_t *)SvPVX (map_sv); 945 uint32_t *map = (uint32_t *)SvPVX (map_sv);
943 946
944 SvPOK_only (map_sv); 947 SvPOK_only (map_sv);
945 SvCUR_set (map_sv, w * h * sizeof (uint32_t)); 948 SvCUR_set (map_sv, w * h * sizeof (uint32_t));
946 949
947 x0 = self->x - w / 2; x1 = x0 + w; 950 x0 += self->x; x1 = x0 + w;
948 y0 = self->y - h / 2; y1 = y0 + h; 951 y0 += self->y; y1 = y0 + h;
949 952
950 for (y = y0; y < y1; y++) 953 for (y = y0; y < y1; y++)
951 { 954 {
952 maprow *row = 0 <= y && y < self->rows 955 maprow *row = 0 <= y && y < self->rows
953 ? self->row + y 956 ? self->row + y
1093 *data++ = 0; /* version 0 format */ 1096 *data++ = 0; /* version 0 format */
1094 *data++ = w >> 8; *data++ = w; 1097 *data++ = w >> 8; *data++ = w;
1095 *data++ = h >> 8; *data++ = h; 1098 *data++ = h >> 8; *data++ = h;
1096 1099
1097 // we need to do this 'cause we don't keep an absolute coord system for rows 1100 // we need to do this 'cause we don't keep an absolute coord system for rows
1098 // TODO: treat rows as we treat 1101 // TODO: treat rows as we treat columns
1099 map_get_row (self, y0 + self->y - self->oy);//D 1102 map_get_row (self, y0 + self->y - self->oy);//D
1100 map_get_row (self, y0 + self->y - self->oy + h - 1);//D 1103 map_get_row (self, y0 + self->y - self->oy + h - 1);//D
1101 1104
1102 x0 += self->x - self->ox; 1105 x0 += self->x - self->ox;
1103 y0 += self->y - self->oy; 1106 y0 += self->y - self->oy;
1167 1170
1168 w = *data++ << 8; w |= *data++; 1171 w = *data++ << 8; w |= *data++;
1169 h = *data++ << 8; h |= *data++; 1172 h = *data++ << 8; h |= *data++;
1170 1173
1171 // we need to do this 'cause we don't keep an absolute coord system for rows 1174 // we need to do this 'cause we don't keep an absolute coord system for rows
1172 // TODO: treat rows as we treat 1175 // TODO: treat rows as we treat columns
1173 map_get_row (self, y0 + self->y - self->oy);//D 1176 map_get_row (self, y0 + self->y - self->oy);//D
1174 map_get_row (self, y0 + self->y - self->oy + h - 1);//D 1177 map_get_row (self, y0 + self->y - self->oy + h - 1);//D
1175 1178
1176 x0 += self->x - self->ox; 1179 x0 += self->x - self->ox;
1177 y0 += self->y - self->oy; 1180 y0 += self->y - self->oy;
1268 CODE: 1271 CODE:
1269 RETVAL = Mix_PlayMusic (self, loops); 1272 RETVAL = Mix_PlayMusic (self, loops);
1270 OUTPUT: 1273 OUTPUT:
1271 RETVAL 1274 RETVAL
1272 1275
1276MODULE = CFClient PACKAGE = CFClient::OpenGL
1277
1278BOOT:
1279{
1280 HV *stash = gv_stashpv ("CFClient::OpenGL", 1);
1281 static const struct {
1282 const char *name;
1283 IV iv;
1284 } *civ, const_iv[] = {
1285# define const_iv(name) { # name, (IV)name }
1286 const_iv (GL_COLOR_MATERIAL),
1287 const_iv (GL_SMOOTH),
1288 const_iv (GL_FLAT),
1289 const_iv (GL_BLEND),
1290 const_iv (GL_AND),
1291 const_iv (GL_SRC_ALPHA),
1292 const_iv (GL_ONE_MINUS_SRC_ALPHA),
1293 const_iv (GL_RGB),
1294 const_iv (GL_RGBA),
1295 const_iv (GL_UNSIGNED_BYTE),
1296 const_iv (GL_ALPHA4),
1297 const_iv (GL_ALPHA),
1298 const_iv (GL_FLOAT),
1299 const_iv (GL_UNSIGNED_INT_8_8_8_8_REV),
1300 const_iv (GL_COMPILE),
1301 const_iv (GL_TEXTURE_1D),
1302 const_iv (GL_TEXTURE_2D),
1303 const_iv (GL_TEXTURE_ENV),
1304 const_iv (GL_TEXTURE_MAG_FILTER),
1305 const_iv (GL_TEXTURE_MIN_FILTER),
1306 const_iv (GL_TEXTURE_ENV_MODE),
1307 const_iv (GL_TEXTURE_WRAP_S),
1308 const_iv (GL_TEXTURE_WRAP_T),
1309 const_iv (GL_CLAMP),
1310 const_iv (GL_REPEAT),
1311 const_iv (GL_NEAREST),
1312 const_iv (GL_LINEAR),
1313 const_iv (GL_MODULATE),
1314 const_iv (GL_REPLACE),
1315 const_iv (GL_COLOR_BUFFER_BIT),
1316 const_iv (GL_PROJECTION),
1317 const_iv (GL_MODELVIEW),
1318 const_iv (GL_COLOR_LOGIC_OP),
1319 const_iv (GL_CONVOLUTION_2D),
1320 const_iv (GL_CONVOLUTION_BORDER_MODE),
1321 const_iv (GL_CONSTANT_BORDER),
1322 const_iv (GL_LINES),
1323 const_iv (GL_QUADS),
1324 const_iv (GL_LINE_LOOP),
1325 const_iv (GL_PERSPECTIVE_CORRECTION_HINT),
1326 const_iv (GL_FASTEST),
1327# undef const_iv
1328 };
1329
1330 for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ-- > const_iv; )
1331 newCONSTSUB (stash, (char *)civ->name, newSViv (civ->iv));
1332}
1333
1334int glGetError ()
1335
1336void glClear (int mask)
1337
1338void glClearColor (float r, float g, float b, float a = 1.0)
1339 PROTOTYPE: @
1340
1341void glEnable (int cap)
1342
1343void glDisable (int cap)
1344
1345void glShadeModel (int mode)
1346
1347void glHint (int target, int mode)
1348
1349void glBlendFunc (int sfactor, int dfactor)
1350
1351void glLogicOp (int opcode)
1352
1353void glMatrixMode (int mode)
1354
1355void glPushMatrix ()
1356
1357void glPopMatrix ()
1358
1359void glLoadIdentity ()
1360
1361void glOrtho (double left, double right, double bottom, double top, double near, double far)
1362
1363void glViewport (int x, int y, int width, int height)
1364
1365void glTranslate (float x, float y, float z = 0.)
1366 CODE:
1367 glTranslatef (x, y, z);
1368
1369void glScale (float x, float y, float z)
1370 CODE:
1371 glScalef (x, y, z);
1372
1373void glRotate (float angle, float x, float y, float z)
1374 CODE:
1375 glRotatef (angle, x, y, z);
1376
1377void glBegin (int mode)
1378
1379void glEnd ()
1380
1381void glColor (float r, float g, float b, float a = 1.0)
1382 PROTOTYPE: @
1383 CODE:
1384 glColor4f (r, g, b, a);
1385
1386void glVertex (float x, float y, float z = 0.)
1387 CODE:
1388 glVertex3f (x, y, z);
1389
1390void glTexCoord (float s, float t)
1391 CODE:
1392 glTexCoord2f (s, t);
1393
1394void glTexEnv (int target, int pname, float param)
1395 CODE:
1396 glTexEnvf (target, pname, param);
1397
1398void glTexParameter (int target, int pname, float param)
1399 CODE:
1400 glTexParameterf (target, pname, param);
1401
1402void glBindTexture (int target, int name)
1403
1404void glConvolutionParameter (int target, int pname, float params)
1405 CODE:
1406 glConvolutionParameterf (target, pname, params);
1407
1408void glConvolutionFilter2D (int target, int internalformat, int width, int height, int format, int type, char *data)
1409
1410void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, char *data)
1411
1412void glCopyTexImage2D (int target, int level, int internalformat, int x, int y, int width, int height, int border)
1413
1414int glGenTexture ()
1415 CODE:
1416{
1417 GLuint name;
1418 glGenTextures (1, &name);
1419 RETVAL = name;
1420}
1421 OUTPUT:
1422 RETVAL
1423
1424void glDeleteTexture (int name)
1425 CODE:
1426{
1427 GLuint name_ = name;
1428 glDeleteTextures (1, &name_);
1429}
1430
1431int glGenList ()
1432 CODE:
1433 RETVAL = glGenLists (1);
1434 OUTPUT:
1435 RETVAL
1436
1437void glDeleteList (int list)
1438 CODE:
1439 glDeleteLists (list, 1);
1440
1441void glNewList (int list, int mode = GL_COMPILE)
1442
1443void glEndList ()
1444
1445void glCallList (int list)
1446

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines