glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-// printf("tex upload %ix%i\n", im->cache_entry.w, im->cache_entry.h);
// +-+
// +-+
//
im->cache_entry.w, im->cache_entry.h,
fmt, tex->pt->dataformat,
im->image.data);
+#ifdef GL_UNPACK_ROW_LENGTH
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, im->cache_entry.w);
+ GLERR(__FUNCTION__, __FILE__, __LINE__, "");
// |xxx
// |xxx
//
1, im->cache_entry.h,
fmt, tex->pt->dataformat,
im->image.data + (im->cache_entry.w - 1));
+#else
+ {
+ DATA32 *tpix, *ps, *pd;
+ int i;
+
+ tpix = alloca(im->cache_entry.h * sizeof(DATA32));
+ pd = tpix;
+ ps = im->image.data;
+ for (i = 0; i < im->cache_entry.h; i++)
+ {
+ *pd = *ps;
+ pd++;
+ ps += im->cache_entry.w;
+ }
+ // |xxx
+ // |xxx
+ //
+ _tex_sub_2d(tex->x - 1, tex->y,
+ 1, im->cache_entry.h,
+ fmt, tex->pt->dataformat,
+ tpix);
+ pd = tpix;
+ ps = im->image.data + (im->cache_entry.w - 1);
+ for (i = 0; i < im->cache_entry.h; i++)
+ {
+ *pd = *ps;
+ pd++;
+ ps += im->cache_entry.w;
+ }
+ // xxx|
+ // xxx|
+ //
+ _tex_sub_2d(tex->x + im->cache_entry.w, tex->y,
+ 1, im->cache_entry.h,
+ fmt, tex->pt->dataformat,
+ tpix);
+ }
+#endif
// xxx
// xxx
// ---