Example #1
0
static void blit_to_texture(void *data, const void *frame,
   unsigned width, unsigned height, unsigned pitch)
{
   d3d_video_t *d3d = (d3d_video_t*)data;

   if (d3d->last_width != width || d3d->last_height != height)
      clear_texture(data);

   D3DLOCKED_RECT d3dlr;
   D3DTexture_LockRect(d3d->tex, 0, &d3dlr, NULL, D3DLOCK_NOSYSLOCK);

#if defined(_XBOX360)
   D3DSURFACE_DESC desc;
   d3d->tex->GetLevelDesc(0, &desc);
      XGCopySurface(d3dlr.pBits, d3dlr.Pitch, width, height, desc.Format, NULL, frame,
                                        pitch, desc.Format, NULL, 0, 0);
#elif defined(_XBOX1)
   for (unsigned y = 0; y < height; y++)
   {
      const uint8_t *in = (const uint8_t*)frame + y * pitch;
      uint8_t *out = (uint8_t*)d3dlr.pBits + y * d3dlr.Pitch;
      memcpy(out, in, width * d3d->pixel_size);
   }
#endif
}
Example #2
0
enum piglit_result
piglit_display(void)
{
	bool pass = true;
	GLuint tex;
	int i;

	tex = create_texture();

	clear_texture(tex);

	glBindTexture(GL_TEXTURE_CUBE_MAP, tex);

	draw_faces();

	glBindTexture(GL_TEXTURE_CUBE_MAP, 0);

	glDeleteTextures(1, &tex);

	for (i = 0; i < 6; i++)
		pass &= piglit_probe_pixel_rgb(i, 0, faces[i].color);

	piglit_present_results();

	return pass ? PIGLIT_PASS : PIGLIT_FAIL;
}
Example #3
0
enum piglit_result
piglit_display(void)
{
	bool pass = true;
	GLuint tex;

	tex = create_texture();

	clear_texture(tex);

	draw_tex(tex);

	glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0);

	glDeleteTextures(1, &tex);

	pass &= piglit_probe_rect_rgb(VALUE_CLEAR_X * 2,
				      VALUE_CLEAR_Y * 2,
				      VALUE_CLEAR_WIDTH * 2,
				      VALUE_CLEAR_HEIGHT * 2,
				      green);

	pass &= piglit_probe_rect_rgb(ZERO_CLEAR_X * 2,
				      ZERO_CLEAR_Y * 2,
				      ZERO_CLEAR_WIDTH * 2,
				      ZERO_CLEAR_HEIGHT * 2,
				      black);

	/* Everything else should be red */

	pass &= probe_tex(0, 0,
			  TEX_WIDTH, ZERO_CLEAR_Y);
	pass &= probe_tex(0, ZERO_CLEAR_Y,
			  ZERO_CLEAR_X, ZERO_CLEAR_HEIGHT);
	pass &= probe_tex(ZERO_CLEAR_X + ZERO_CLEAR_WIDTH, ZERO_CLEAR_Y,
			  TEX_WIDTH - ZERO_CLEAR_X - ZERO_CLEAR_WIDTH,
			  ZERO_CLEAR_HEIGHT);
	pass &= probe_tex(0, VALUE_CLEAR_Y,
			  VALUE_CLEAR_X, VALUE_CLEAR_HEIGHT);
	pass &= probe_tex(VALUE_CLEAR_X + VALUE_CLEAR_WIDTH, VALUE_CLEAR_Y,
			  TEX_WIDTH - VALUE_CLEAR_X - VALUE_CLEAR_WIDTH,
			  VALUE_CLEAR_HEIGHT);
	pass &= probe_tex(0, VALUE_CLEAR_Y + VALUE_CLEAR_HEIGHT,
			  TEX_WIDTH,
			  TEX_HEIGHT - VALUE_CLEAR_Y - VALUE_CLEAR_HEIGHT);

	piglit_present_results();

	return pass ? PIGLIT_PASS : PIGLIT_FAIL;
}
Example #4
0
void RenderChain::blit_to_texture(const void *frame,
      unsigned width, unsigned height,
      unsigned pitch)
{
   Pass &first = passes[0];
   if (first.last_width != width || first.last_height != height)
      clear_texture(first);

   D3DLOCKED_RECT d3dlr;
   if (SUCCEEDED(first.tex->LockRect(0, &d3dlr, NULL, D3DLOCK_NOSYSLOCK)))
   {
      for (unsigned y = 0; y < height; y++)
      {
         const uint8_t *in = reinterpret_cast<const uint8_t*>(frame) + y * pitch;
         uint8_t *out = reinterpret_cast<uint8_t*>(d3dlr.pBits) + y * d3dlr.Pitch;
         memcpy(out, in, width * pixel_size);
      }

      first.tex->UnlockRect(0);
   }
}
Example #5
0
unsigned int refresh_texture(struct Picture * picturedata)
{
  clear_texture(picturedata);
  make_texture(picturedata,frame.mipmaping);
  return 1;
}