DrawSetTextureRGBA: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
Line 24: Line 24:


===Set Up Texture ID===
===Set Up Texture ID===
  m_iHudTexture=surface()->[[CreateNewTextureID]]();
  m_iHudTexture = surface()->[[CreateNewTextureID]]();
  surface()->'''DrawSetTextureRGBA'''( m_iHudTexture, (unsigned char*)abPic, HEIGHT, WIDTH, false, true );
  surface()->'''DrawSetTextureRGBA'''( m_iHudTexture, (unsigned char*)abPic, HEIGHT, WIDTH, false, true );
  surface()->[[DrawSetColor]]( Color( 255, 255, 255, 128 ) );
  surface()->[[DrawSetColor]]( Color( 255, 255, 255, 128 ) );

Revision as of 21:02, 15 July 2006

void ISurface::DrawSetTextureRGBA(int id, const unsigned char *rgba,
int wide, int tall, int hardwareFilter, bool forceReload)

This is a function that you should use to draw raw RGBA data to the HUD, for example when you are rendering a mask.

Sample

Initialization

#define HEIGHT 256
#define WIDTH 256
#define PIXEL_BYTES 4 // RGBA (never changes)
unsigned char abPic[ HEIGHT * WIDTH * PIXEL_BYTES ];

Raw Data

for (y = 0; y < HEIGHT; y++) // up/down traverse
{ 
	for (x = 0; x < WIDTH; x++) // left/right traverse
	{
		int offset = (x + y * WIDTH) * PIXEL_BYTES;
		char *dst = ((char*)abPic) + offset;
					
		dst[0] = (unsigned char)255;//red
		dst[1] = (unsigned char)255;//green
		dst[2] = (unsigned char)255;//blue
		dst[3] = (unsigned char)255;//alpha
	}
}

Set Up Texture ID

	m_iHudTexture = surface()->CreateNewTextureID();
	surface()->DrawSetTextureRGBA( m_iHudTexture, (unsigned char*)abPic, HEIGHT, WIDTH, false, true );
	surface()->DrawSetColor( Color( 255, 255, 255, 128 ) );
	surface()->DrawTexturedRect( 0, 0, GetWide(), GetTall() );

See Also