UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
r_draw.h File Reference

Go to the source code of this file.

Functions

void R_DrawImage (float x, float y, const image_t *image)
 Draws an image or parts of it. More...
 
void R_DrawStretchImage (float x, float y, int w, int h, const image_t *image)
 
const image_tR_DrawImageArray (const vec2_t texcoords[4], const vec2_t verts[4], const image_t *image)
 
void R_DrawChar (int x, int y, int c, uint32_t color)
 Draws one 8*8 graphics character with 0 being transparent. It can be clipped to the top of the screen to allow the console to be smoothly scrolled off. More...
 
void R_DrawChars (void)
 
void R_DrawFills (void)
 
void R_DrawFill (int x, int y, int w, int h, const vec4_t color)
 Fills a box of pixels with a single color. More...
 
void R_DrawRect (int x, int y, int w, int h, const vec4_t color, float lineWidth, int pattern)
 Draws a rect to the screen. Also has support for stippled rendering of the rect. More...
 
int R_UploadData (const char *name, unsigned *frame, int width, int height)
 Uploads image data. More...
 
void R_DrawTexture (int texnum, int x, int y, int w, int h)
 Bind and draw a texture. More...
 
void R_DrawLineStrip (int points, int *verts)
 2 dimensional line strip More...
 
void R_DrawLineLoop (int points, int *verts)
 
void R_DrawLine (int *verts, float thickness)
 Draws one line with only one start and one end point. More...
 
void R_DrawCircle (float radius, const vec4_t color, float thickness, const vec3_t shift)
 
void R_DrawPolygon (int points, int *verts)
 
void R_PushClipRect (int x, int y, int width, int height)
 Force to draw only on a rect. More...
 
void R_PopClipRect (void)
 
void R_CleanupDepthBuffer (int x, int y, int width, int height)
 "Clean up" the depth buffer into a rect More...
 
void R_DrawBoundingBox (const AABB &absBox)
 Draws the model bounding box. More...
 
void R_DrawBoundingBoxBatched (const AABB &box)
 
void R_DrawBoundingBoxes (void)
 
void R_DrawTexturedBox (const vec3_t absmins, const vec3_t absmaxs)
 Draws the textured box, the caller should bind the texture. More...
 

Function Documentation

void R_CleanupDepthBuffer ( int  x,
int  y,
int  width,
int  height 
)

"Clean up" the depth buffer into a rect

Note
we use a big value (but not too big) to set the depth buffer, then it is not really a clean up
Todo:
can we fix bigZ with a value come from glGet?

Definition at line 596 of file r_draw.cpp.

References rendererData_t::batchCount, R_BindArray(), R_BindDefaultArray(), refdef, viddef_t::rx, viddef_t::ry, and viddef.

Referenced by uiItemNode::draw(), uiRadarNode::draw(), uiSequenceNode::draw(), and UI_DrawModelNode().

void R_DrawBoundingBox ( const AABB absBox)

Draws the model bounding box.

See also
R_EntityComputeBoundingBox

Definition at line 690 of file r_draw.cpp.

References AABB::maxs, AABB::mins, R_BindArray(), R_BindDefaultArray(), and R_ComputeBoundingBox().

Referenced by R_DrawAliasModel(), R_DrawBox(), R_DrawModelDirect(), R_DrawModelParticle(), and R_RenderBspRRefs().

void R_DrawBoundingBoxBatched ( const AABB box)
void R_DrawBoundingBoxes ( void  )
void R_DrawChar ( int  x,
int  y,
int  c,
uint32_t  color 
)

Draws one 8*8 graphics character with 0 being transparent. It can be clipped to the top of the screen to allow the console to be smoothly scrolled off.

Definition at line 99 of file r_draw.cpp.

References char_arrays_s::color_index, char_arrays_s::colors, con_fontHeight, con_fontWidth, int(), lengthof, char_arrays_s::texcoord_index, char_arrays_s::texcoords, char_arrays_s::vert_index, and char_arrays_s::verts.

Referenced by Con_DrawConsole(), and Con_DrawText().

void R_DrawCircle ( float  radius,
const vec4_t  color,
float  thickness,
const vec3_t  shift 
)
void R_DrawFill ( int  x,
int  y,
int  w,
int  h,
const vec4_t  color 
)

Fills a box of pixels with a single color.

Todo:
this shouldn't be here, but only called once at the end of the frame but this is needed here because a) we don't want them to get rendered on top of the console and b) the ui stuff relies on the order of these renderings

Definition at line 188 of file r_draw.cpp.

References batch_arrays_s::color_index, batch_arrays_s::colors, lengthof, LittleLong, R_DrawFills(), viddef_t::rx, viddef_t::ry, batch_arrays_s::vert_index, batch_arrays_s::verts, and viddef.

Referenced by uiLineChartNode::draw(), GAME_GetImportData(), SCR_DrawLoadingBar(), SEQ_Render2D(), and UI_DrawFill().

void R_DrawImage ( float  x,
float  y,
const image_t image 
)

Draws an image or parts of it.

Parameters
x,yposition to draw the image to
[in]imagePointer to the imlage to display

Definition at line 341 of file r_draw.cpp.

References image_s::height, R_DrawTexture(), viddef_t::rx, viddef_t::ry, image_s::texnum, viddef, and image_s::width.

Referenced by HUD_UpdateCursor(), R_DrawImageCentered(), SCR_DrawCursor(), SCR_DrawLoadingScreen(), and SEQ_Render2D().

const image_t* R_DrawImageArray ( const vec2_t  texcoords[4],
const vec2_t  verts[4],
const image_t image 
)
void R_DrawLine ( int verts,
float  thickness 
)

Draws one line with only one start and one end point.

See also
R_DrawLineStrip

Definition at line 494 of file r_draw.cpp.

References R_Draw2DArray().

Referenced by GAME_GetImportData().

void R_DrawLineLoop ( int  points,
int verts 
)
See also
R_DrawLineStrip

Definition at line 485 of file r_draw.cpp.

References R_Draw2DArray().

void R_DrawLineStrip ( int  points,
int verts 
)

2 dimensional line strip

See also
R_DrawLineLoop

Definition at line 477 of file r_draw.cpp.

References R_Draw2DArray().

Referenced by uiLineChartNode::draw(), and GAME_GetImportData().

void R_DrawPolygon ( int  points,
int verts 
)
See also
R_DrawLineStrip
R_DrawLineLoop

Definition at line 509 of file r_draw.cpp.

References R_Draw2DArray().

void R_DrawRect ( int  x,
int  y,
int  w,
int  h,
const vec4_t  color,
float  lineWidth,
int  pattern 
)

Draws a rect to the screen. Also has support for stippled rendering of the rect.

Parameters
[in]x,yX/Y-position of the rect
[in]wWidth of the rect
[in]hHeight of the rect
[in]colorRGBA color of the rect
[in]lineWidthLine strength in pixel of the rect
[in]patternSpecifies a 16-bit integer whose bit pattern determines which fragments of a line will be drawn when the line is rasterized. Bit zero is used first; the default pattern is all 1's
Note
The stipple factor is 2 for this function

Definition at line 390 of file r_draw.cpp.

References rendererData_t::batchCount, f, R_BindDefaultArray(), R_Color(), refdef, viddef_t::rx, viddef_t::ry, and viddef.

Referenced by GAME_GetImportData(), SEQ_Render2D(), and UI_DrawRect().

void R_DrawStretchImage ( float  x,
float  y,
int  w,
int  h,
const image_t image 
)

Definition at line 349 of file r_draw.cpp.

References R_DrawTexture(), viddef_t::rx, viddef_t::ry, image_s::texnum, and viddef.

Referenced by Con_DrawConsole().

void R_DrawTexture ( int  texnum,
int  x,
int  y,
int  w,
int  h 
)

Bind and draw a texture.

Parameters
[in]texnumThe texture id (already uploaded of course)
[in]x,ynormalized position on the screen
[in]w,hnormalized width and height values

Definition at line 328 of file r_draw.cpp.

References default_texcoords, R_BindTexture, R_DrawImageArray(), and Vector2FromInt.

Referenced by CIN_OGM_DrawCinematic(), CIN_ROQ_DrawCinematic(), R_Draw3DGlobe(), R_DrawImage(), and R_DrawStretchImage().

void R_DrawTexturedBox ( const vec3_t  a0,
const vec3_t  a1 
)

Draws the textured box, the caller should bind the texture.

See also
R_DrawBox

Definition at line 714 of file r_draw.cpp.

References R_BindArray(), and R_BindDefaultArray().

Referenced by R_DrawBox().

void R_PopClipRect ( void  )
See also
R_PushClipRect

Definition at line 579 of file r_draw.cpp.

References currentClipRect.

Referenced by UI_PopClipRect().

void R_PushClipRect ( int  x,
int  y,
int  width,
int  height 
)

Force to draw only on a rect.

Note
Don't forget to call R_EndClipRect
See also
R_PopClipRect

Definition at line 550 of file r_draw.cpp.

References currentClipRect, rect_t::height, MAX_CLIPRECT, R_RectIntersection(), viddef_t::rx, viddef_t::ry, viddef, viddef_t::virtualHeight, rect_t::width, rect_t::x, and rect_t::y.

Referenced by UI_PushClipRect().

int R_UploadData ( const char *  name,
unsigned *  frame,
int  width,
int  height 
)

Uploads image data.

Parameters
[in]nameThe name of the texture to use for this data
[in]frameThe frame data that is uploaded
[in]widthThe width of the texture
[in]heightThe height of the texture
Returns
the texture number of the uploaded images

Definition at line 270 of file r_draw.cpp.

References Com_Error(), ERR_FATAL, rconfig_t::gl_alpha_format, rconfig_t::gl_compressed_alpha_format, rconfig_t::gl_compressed_solid_format, rconfig_t::gl_solid_format, glTexImage2D(), glTexParameterf(), image_s::height, i, it_pic, Mem_Free, Mem_PoolAllocTypeN, R_BindTexture, R_CheckError, r_config, R_FindImage(), R_GetScaledTextureSize(), r_noTexture, R_ScaleTexture(), image_s::texnum, image_s::upload_height, image_s::upload_width, vid_imagePool, and image_s::width.

Referenced by CIN_OGM_DrawCinematic(), and CIN_ROQ_DrawCinematic().