DrawSetTextureRGBA: Difference between revisions
Jump to navigation
Jump to search
void ISurface::DrawSetTextureRGBA(int id, const unsigned char *rgba,
m (→Sample) |
|||
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() );