All pastes #964662 Raw Edit

beer

public text v1 · immutable
#964662 ·published 2008-03-31 13:09 UTC
rendered paste body

			glEnable (GL_TEXTURE_RECTANGLE_ARB); GL_ERR ();
			glBindTexture (GL_TEXTURE_RECTANGLE_ARB, sc_main_tex); GL_ERR ();
#			ifdef PBO
			glBindBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB, sc_main_texbuf); GL_ERR ();
#			else
			glTexSubImage2D (GL_TEXTURE_RECTANGLE_ARB, 0, 0, 0, 640, 480, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, rgbpage); GL_ERR ();
#			endif

#			ifdef PBO
			glTexSubImage2D (GL_TEXTURE_RECTANGLE_ARB, 0, 0, 0, 640, 480, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, 0); GL_ERR ();

//			glBindBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB, sc_main_texbuf); GL_ERR ();
			glBufferDataARB (GL_PIXEL_UNPACK_BUFFER_ARB, 640 * 480 * 4, 0, GL_STREAM_DRAW_ARB); GL_ERR ();
			ptr = (GLubyte *)glMapBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB, GL_WRITE_ONLY_ARB); GL_ERR ();
			if (ptr)
			{
//				memcpy (ptr, rgbpage, 640 * 480 * 4);
				/*sc-bild übertragen*/
				p1 = intpage; p2 = intpage + 640; q1 = (int *)ptr; q2 = (int *)(ptr + 640 * 4);
				for (n = 0; n < 480 / 2; n++)
				{
					int m;

					/*TODO: optimieren mit vier p's auf einmal?*/
					for (m = 0; m < 640; m++)
					{
						*q1++ = palette_r[*p1++];
						*q2++ = palette_r[*p2++];
					}
					p1 += 640; p2 += 640;
					q1 += 640; q2 += 640;
				}

				glUnmapBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB); GL_ERR ();
			}

			glBindBufferARB (GL_PIXEL_UNPACK_BUFFER_ARB, 0); GL_ERR ();
#			endif