mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-27 14:42:07 +00:00
4e1ddaa964
The pic is scaled to fill the specified rect (then clipped to the screen (effectively)). Done just for the console background for now, but it will be used for slice-pics as well. Not implemented for vulkan yet as I'm still thinking about the descriptor management needed for the instanced rendering. Making the conback rendering conditional gave an approximately 3% speed boost to glsl with the GL stub (~12200fps to ~12550fps), for either conback render method.
95 lines
3.6 KiB
C
95 lines
3.6 KiB
C
/*
|
|
qf_draw.h
|
|
|
|
vulkan specific draw function
|
|
|
|
Copyright (C) 1996-1997 Id Software, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to:
|
|
|
|
Free Software Foundation, Inc.
|
|
59 Temple Place - Suite 330
|
|
Boston, MA 02111-1307, USA
|
|
|
|
*/
|
|
|
|
#ifndef __QF_Vulkan_qf_draw_h
|
|
#define __QF_Vulkan_qf_draw_h
|
|
|
|
typedef enum {
|
|
QFV_draw2d,
|
|
|
|
QFV_drawNumPasses
|
|
} QFV_DrawSubpass;
|
|
|
|
struct vulkan_ctx_s;
|
|
struct qfv_renderframe_s;
|
|
struct qpic_s;
|
|
struct font_s;
|
|
struct draw_charbuffer_s;
|
|
|
|
void Vulkan_Draw_CharBuffer (int x, int y, struct draw_charbuffer_s *buffer,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Init (struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Shutdown (struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Character (int x, int y, unsigned ch,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_String (int x, int y, const char *str,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_nString (int x, int y, const char *str, int count,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_AltString (int x, int y, const char *str,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_ConsoleBackground (int lines, byte alpha,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Crosshair (struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_CrosshairAt (int ch, int x, int y, struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_TileClear (int x, int y, int w, int h,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Fill (int x, int y, int w, int h, int c,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Line (int x0, int y0, int x1, int y1, int c,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_TextBox (int x, int y, int width, int lines, byte alpha,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_FadeScreen (struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_BlendScreen (quat_t color, struct vulkan_ctx_s *ctx);
|
|
struct qpic_s *Vulkan_Draw_CachePic (const char *path, qboolean alpha,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_UncachePic (const char *path, struct vulkan_ctx_s *ctx);
|
|
struct qpic_s *Vulkan_Draw_MakePic (int width, int height, const byte *data,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_DestroyPic (struct qpic_s *pic, struct vulkan_ctx_s *ctx);
|
|
struct qpic_s *Vulkan_Draw_PicFromWad (const char *name,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Pic (int x, int y, struct qpic_s *pic,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_FitPic (int x, int y, int width, int height,
|
|
struct qpic_s *pic, struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Picf (float x, float y, struct qpic_s *pic,
|
|
struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_SubPic(int x, int y, struct qpic_s *pic,
|
|
int srcx, int srcy, int width, int height,
|
|
struct vulkan_ctx_s *ctx);
|
|
int Vulkan_Draw_AddFont (struct font_s *font, struct vulkan_ctx_s *ctx);
|
|
void Vulkan_Draw_Glyph (int x, int y, int fontid, int glyphid, int c,
|
|
struct vulkan_ctx_s *ctx);
|
|
|
|
void Vulkan_FlushText (struct qfv_renderframe_s *rFrame);
|
|
|
|
void Vulkan_LineGraph (int x, int y, int *h_vals, int count, int height,
|
|
struct vulkan_ctx_s *ctx);
|
|
|
|
#endif//__QF_Vulkan_qf_draw_h
|