DrawSetTextureRGBA: Difference between revisions
Jump to navigation
Jump to search
PsychoBrat (talk | contribs) (category change) |
Thunder4ik (talk | contribs) m (→See also: Unicodifying, replaced: See Also → See also) |
||
(20 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
DrawSetTextureRGBA() is a function that you should use to draw raw RGBA data to the HUD, for example when you are rendering a mask. | =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() ); | |||
[[Category: Developer Issues and Workarounds]] | ==See also== | ||
* [[CreateProceduralTexture]] | |||
* [[CreateMaterial]] | |||
[[Category:ISurface]] | |||
[[Category:Developer Issues and Workarounds]] |
Latest revision as of 09: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() );