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.200 by root, Tue Jul 17 16:02:13 2007 UTC vs.
Revision 1.201 by root, Tue Jul 17 17:39:06 2007 UTC

1974 glDisable (GL_BLEND); 1974 glDisable (GL_BLEND);
1975 glDisable (GL_TEXTURE_2D); 1975 glDisable (GL_TEXTURE_2D);
1976} 1976}
1977 1977
1978void 1978void
1979fow_texture (CFPlus::Map self, int mx, int my, int sw, int sh) 1979fow_texture (CFPlus::Map self, int mx, int my, int sw, int sh, int smoothing, const char *matrix)
1980 PPCODE: 1980 PPCODE:
1981{ 1981{
1982 int x, y; 1982 int x, y;
1983 int sw4 = (sw + 3) & ~3; 1983 int sw4 = (sw + 3) & ~3;
1984 SV *darkness_sv = sv_2mortal (newSV (sw4 * sh)); 1984 SV *darkness_sv = sv_2mortal (newSV (sw4 * sh));
2004 darkness[y * sw4 + x] = cell->darkness 2004 darkness[y * sw4 + x] = cell->darkness
2005 ? 255 - (cell->darkness - 1) 2005 ? 255 - (cell->darkness - 1)
2006 : 255 - FOW_DARKNESS; 2006 : 255 - FOW_DARKNESS;
2007 } 2007 }
2008 } 2008 }
2009
2010 if (smoothing)
2011 {
2012 SV *darkness2_sv = sv_2mortal (newSV (sw4 * sh));
2013 uint8_t *darkness2 = (uint8_t *)SvPVX (darkness2_sv);
2014
2015 SvPOK_only (darkness2_sv);
2016 SvCUR_set (darkness2_sv, sw4 * sh);
2017
2018 for (y = 0; y < sh; ++y)
2019 for (x = 0; x < sw4; ++x)
2020 {
2021 float *f = (float *)matrix;
2022 int dx, dy;
2023 float sum = 0.f;
2024
2025 for (dy = -1; dy <= 1; ++dy)
2026 for (dx = -1; dx <= 1; ++dx)
2027 {
2028 unsigned int x2 = x + dx;
2029 unsigned int y2 = y + dy;
2030
2031 sum += (x2 < sw && y2 < sh ? darkness [y2 * sw4 + x2] : 255) * *f++;
2032 }
2033
2034 darkness2 [y * sw4 + x] = sum > 255. ? 255. : sum;
2035 }
2036
2037 darkness_sv = darkness2_sv;
2038 }
2009 2039
2010 EXTEND (SP, 3); 2040 EXTEND (SP, 3);
2011 PUSHs (sv_2mortal (newSViv (sw4))); 2041 PUSHs (sv_2mortal (newSViv (sw4)));
2012 PUSHs (sv_2mortal (newSViv (sh))); 2042 PUSHs (sv_2mortal (newSViv (sh)));
2013 PUSHs (darkness_sv); 2043 PUSHs (darkness_sv);
2346 CODE: 2376 CODE:
2347 RETVAL = (char *)glGetString (GL_EXTENSIONS); 2377 RETVAL = (char *)glGetString (GL_EXTENSIONS);
2348 OUTPUT: 2378 OUTPUT:
2349 RETVAL 2379 RETVAL
2350 2380
2351char *glGetString (GLenum pname) 2381const char *glGetString (GLenum pname)
2352 2382
2353GLint glGetInteger (GLenum pname) 2383GLint glGetInteger (GLenum pname)
2354 CODE: 2384 CODE:
2355 glGetIntegerv (pname, &RETVAL); 2385 glGetIntegerv (pname, &RETVAL);
2356 OUTPUT: 2386 OUTPUT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines