DrawSetTextureRGBA: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
m (qwertyuiop)  | 
				Thunder4ik (talk | contribs)  m (→See also: Unicodifying, replaced: See Also → See also)  | 
				||
| (17 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
=void '''DrawSetTextureRGBA'''(int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload)=  | =The function=  | ||
This is a function that you should use to draw raw RGBA data to the HUD, for example when you are rendering a mask.   |  void [[ISurface]]::'''DrawSetTextureRGBA'''( int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload ) = 0  | ||
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]](true);  | |||
 	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==  | |||
* [[CreateProceduralTexture]]  | |||
* [[CreateMaterial]]  | |||
[[Category:ISurface]]  | [[Category:ISurface]]  | ||
[[Category:Developer Issues and Workarounds]]  | [[Category:Developer Issues and Workarounds]]  | ||
Latest revision as of 08:15, 8 January 2024
The function
void ISurface::DrawSetTextureRGBA( int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload ) = 0
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(true); surface()->DrawSetTextureRGBA( m_iHudTexture, (unsigned char*)abPic, HEIGHT, WIDTH, false, true ); surface()->DrawSetColor( Color( 255, 255, 255, 128 ) ); surface()->DrawTexturedRect( 0, 0, GetWide(), GetTall() );