FTEQW
Documentation of the FTE engine source tree.
sw.h
Go to the documentation of this file.
1
2typedef struct
3{
4 int pwidth;
5 int pheight;
8 int pitch;
9 unsigned int data[1];
10} swimage_t;
11
12typedef struct
13{
14 float matrix[16];
17
18typedef struct
19{
20 volatile unsigned int readpoint; //the command queue point its reading from
21 void *thread;
22
23#ifdef _DEBUG
24 float idletime;
26#endif
27
28 unsigned int interlaceline;
29 unsigned int interlacemod;
30 unsigned int threadnum; //for relocating viewport info
31 unsigned int *vpdbuf;
32 unsigned int *vpcbuf;
33 unsigned int vpwidth;
34 unsigned int vpheight;
37 struct workqueue_s *wq;
39
40typedef struct
41{
42 int scoord[2];
43 float zicoord;
47 byte_vec4_t colour;
48 unsigned int clipflags; /*1=left,2=right,4=top,8=bottom,16=near*/
49} swvert_t;
50
51#define WQ_SIZE 1024*1024*8
52#define WQ_MASK (WQ_SIZE-1)
53#define WQ_MAXTHREADS 64
55{
56 unsigned int numthreads;
57 qbyte queue[WQ_SIZE];
58 volatile unsigned int pos;
59
60 swthread_t swthreads[WQ_MAXTHREADS];
61};
62extern struct workqueue_s commandqueue;
63
64
65
67{
77};
78
79enum
80{
86 CLIP_FAR_FLAG = 32
87};
88
89typedef union
90{
91 unsigned char align[16];
92
93 struct wqcom_s
94 {
96 unsigned int cmdsize;
97 } com;
98 struct
99 {
100 struct wqcom_s com;
101
104 swvert_t verts[1];
105 } trifan;
106 struct
107 {
108 struct wqcom_s com;
109
111 int numverts;
113 swvert_t verts[1];
114 } trisoup;
115 struct
116 {
117 struct wqcom_s com;
118
119 unsigned int *cbuf;
120 unsigned int *dbuf;
121 unsigned int width;
122 unsigned int height;
124 unsigned int interlace;
125 unsigned int framenum;
126
129 } viewport;
130 struct
131 {
132 struct wqcom_s com;
134 } uniforms;
135 struct
136 {
137 int foo;
138 } spans;
139} wqcom_t;
140
141
142
143void SWRast_EndCommand(struct workqueue_s *wq, wqcom_t *com);
144wqcom_t *SWRast_BeginCommand(struct workqueue_s *wq, int cmdtype, unsigned int size);
145void SWRast_Sync(struct workqueue_s *wq);
146
147
148
149qboolean SW_VID_Init(rendererstate_t *info, unsigned char *palette);
150void SW_VID_DeInit(void);
151qboolean SW_VID_ApplyGammaRamps (unsigned int rampcount, unsigned short *ramps);
152char *SW_VID_GetRGBInfo(int *bytestride, int *truevidwidth, int *truevidheight, enum uploadfmt *fmt);
153void SW_VID_SetWindowCaption(const char *msg);
154void SW_VID_SwapBuffers(void);
156
157
158
159
160void SW_UpdateFiltering (image_t *imagelist, int filtermip[3], int filterpic[3], int mipcap[2], float anis);
163
164
166void SWBE_DrawMesh_List(shader_t *shader, int nummeshes, struct mesh_s **mesh, struct vbo_s *vbo, struct texnums_s *texnums, unsigned int be_flags);
167void SWBE_DrawMesh_Single(shader_t *shader, struct mesh_s *meshchain, struct vbo_s *vbo, unsigned int be_flags);
168void SWBE_SubmitBatch(struct batch_s *batch);
169struct batch_s *SWBE_GetTempBatch(void);
170void SWBE_DrawWorld(batch_t **worldbatches);
171void SWBE_Init(void);
172void SWBE_GenBrushModelVBO(struct model_s *mod);
173void SWBE_ClearVBO(struct vbo_s *vbo, qboolean dataonly);
174void SWBE_UploadAllLightmaps(void);
175void SWBE_SelectEntity(struct entity_s *ent);
176qboolean SWBE_SelectDLight(struct dlight_s *dl, vec3_t colour, vec3_t axis[3], unsigned int lmode);
178void SWBE_RenderToTextureUpdate2d(qboolean destchanged);
179void SWBE_Set2D(void);
qboolean
Definition: api_menu.h:34
vec_t vec3_t[3]
Definition: api_menu.h:40
vec_t vec4_t[4]
Definition: api_menu.h:41
vec_t vec2_t[2]
Definition: api_menu.h:39
enum @13::coninfomode_e mode
Definition: com_phys_ode.c:695
cvar_t model
Definition: cl_main.c:153
cvar_t msg
Definition: cl_main.c:159
entity_t * ent
Definition: com_mesh.c:717
vbo_t vbo
Definition: com_mesh.c:737
unsigned char qbyte
Definition: common.h:127
intptr_t qintptr_t
Definition: common.h:38
struct @319::xidevinfo::@353 axis[2]
unsigned short ramps[3][256]
GLuint texture
Definition: glquake.h:603
GLint size
Definition: glquake.h:157
static png_inforp png_colorp * palette
Definition: image.c:1410
enum backendmode_e backendmode_t
char ** data
Definition: p_script.c:63
shader_t * shader
Definition: r_2d.c:51
uploadfmt_t fmt
Definition: r_2d.c:48
texid_t tex
Definition: r_2d.c:52
uploadfmt
Definition: screen.h:96
Definition: gl_model.h:133
Definition: client.h:315
Definition: render.h:99
Definition: merged.h:238
Definition: gl_model.h:90
Definition: gl_model.h:972
Definition: merged.h:302
Definition: vid.h:42
Definition: shader.h:602
Definition: sw.h:3
int pheight
Definition: sw.h:5
int pitch
Definition: sw.h:8
int pwidthmask
Definition: sw.h:6
int pheightmask
Definition: sw.h:7
int pwidth
Definition: sw.h:4
Definition: sw.h:19
struct workqueue_s * wq
Definition: sw.h:37
unsigned int * vpcbuf
Definition: sw.h:32
unsigned int vpwidth
Definition: sw.h:33
qintptr_t vpcstride
Definition: sw.h:36
unsigned int vpheight
Definition: sw.h:34
float activetime
Definition: sw.h:25
void * thread
Definition: sw.h:21
unsigned int interlaceline
Definition: sw.h:28
unsigned int * vpdbuf
Definition: sw.h:31
unsigned int interlacemod
Definition: sw.h:29
float idletime
Definition: sw.h:24
swuniforms_t u
Definition: sw.h:35
unsigned int threadnum
Definition: sw.h:30
volatile unsigned int readpoint
Definition: sw.h:20
Definition: sw.h:13
vec4_t viewplane
Definition: sw.h:15
Definition: sw.h:41
byte_vec4_t colour
Definition: sw.h:47
unsigned int clipflags
Definition: sw.h:48
vec4_t vcoord
Definition: sw.h:44
vec2_t lmcoord
Definition: sw.h:46
float zicoord
Definition: sw.h:43
vec2_t tccoord
Definition: sw.h:45
Definition: merged.h:383
Definition: gl_model.h:320
Definition: sw.h:55
qbyte queue[WQ_SIZE]
Definition: sw.h:57
unsigned int numthreads
Definition: sw.h:56
volatile unsigned int pos
Definition: sw.h:58
swthread_t swthreads[WQ_MAXTHREADS]
Definition: sw.h:60
Definition: sw.h:94
enum wqcmd_e command
Definition: sw.h:95
unsigned int cmdsize
Definition: sw.h:96
qboolean SWBE_LightCullModel(vec3_t org, struct model_s *model)
Definition: sw_backend.c:852
void SWBE_SubmitBatch(struct batch_s *batch)
Definition: sw_backend.c:486
void SWRast_EndCommand(struct workqueue_s *wq, wqcom_t *com)
Definition: sw_rast.c:779
struct workqueue_s commandqueue
Definition: sw_rast.c:39
void SWBE_GenBrushModelVBO(struct model_s *mod)
Definition: sw_backend.c:655
void SW_UpdateFiltering(image_t *imagelist, int filtermip[3], int filterpic[3], int mipcap[2], float anis)
void SWBE_UploadAllLightmaps(void)
Definition: sw_backend.c:661
qboolean SW_VID_ApplyGammaRamps(unsigned int rampcount, unsigned short *ramps)
Definition: sw_viddos.c:328
qboolean SWBE_SelectDLight(struct dlight_s *dl, vec3_t colour, vec3_t axis[3], unsigned int lmode)
Definition: sw_backend.c:848
qboolean SW_LoadTextureMips(texid_t tex, const struct pendingtextureinfo *mips)
Definition: sw_image.c:38
void SW_VID_DeInit(void)
Definition: sw_viddos.c:321
wqcmd_e
Definition: sw.h:67
@ WTC_UNIFORMS
Definition: sw.h:76
@ WTC_NEWFRAME
Definition: sw.h:70
@ WTC_VIEWPORT
Definition: sw.h:72
@ WTC_TRIFAN
Definition: sw.h:73
@ WTC_SPANS
Definition: sw.h:75
@ WTC_NOOP
Definition: sw.h:71
@ WTC_SYNC
Definition: sw.h:69
@ WTC_TRISOUP
Definition: sw.h:74
@ WTC_DIE
Definition: sw.h:68
void SWBE_RenderToTextureUpdate2d(qboolean destchanged)
Definition: sw_backend.c:857
void SWBE_Set2D(void)
Definition: sw_backend.c:573
qboolean SW_VID_Init(rendererstate_t *info, unsigned char *palette)
Definition: sw_viddos.c:291
void SW_DestroyTexture(texid_t tex)
Definition: sw_image.c:19
@ CLIP_FAR_FLAG
Definition: sw.h:86
@ CLIP_NEAR_FLAG
Definition: sw.h:85
@ CLIP_BOTTOM_FLAG
Definition: sw.h:84
@ CLIP_RIGHT_FLAG
Definition: sw.h:82
@ CLIP_TOP_FLAG
Definition: sw.h:83
@ CLIP_LEFT_FLAG
Definition: sw.h:81
void SWBE_DrawMesh_Single(shader_t *shader, struct mesh_s *meshchain, struct vbo_s *vbo, unsigned int be_flags)
Definition: sw_backend.c:482
char * SW_VID_GetRGBInfo(int *bytestride, int *truevidwidth, int *truevidheight, enum uploadfmt *fmt)
Definition: sw_viddos.c:332
void SWRast_Sync(struct workqueue_s *wq)
Definition: sw_rast.c:811
void SWBE_DrawWorld(batch_t **worldbatches)
Definition: sw_backend.c:620
void SW_VID_SwapBuffers(void)
Definition: sw_viddos.c:348
struct batch_s * SWBE_GetTempBatch(void)
Definition: sw_backend.c:495
void SWBE_DrawMesh_List(shader_t *shader, int nummeshes, struct mesh_s **mesh, struct vbo_s *vbo, struct texnums_s *texnums, unsigned int be_flags)
Definition: sw_backend.c:475
void SWBE_ClearVBO(struct vbo_s *vbo, qboolean dataonly)
Definition: sw_backend.c:658
wqcom_t * SWRast_BeginCommand(struct workqueue_s *wq, int cmdtype, unsigned int size)
Definition: sw_rast.c:789
void SWBE_SelectEntity(struct entity_s *ent)
Definition: sw_backend.c:823
void SW_VID_SetWindowCaption(const char *msg)
Definition: sw_viddos.c:345
void SW_VID_UpdateViewport(wqcom_t *com)
Definition: sw_viddos.c:355
void SWBE_Init(void)
Definition: sw_backend.c:646
void SWBE_SelectMode(backendmode_t mode)
Definition: sw_backend.c:378
Definition: sw.h:90
int numverts
Definition: sw.h:103
unsigned int width
Definition: sw.h:121
unsigned int * dbuf
Definition: sw.h:120
swuniforms_t u
Definition: sw.h:133
unsigned int height
Definition: sw.h:122
qintptr_t stride
Definition: sw.h:123
swimage_t * texture
Definition: sw.h:102
int numidx
Definition: sw.h:112
unsigned int framenum
Definition: sw.h:125
qboolean cleardepth
Definition: sw.h:127
unsigned int interlace
Definition: sw.h:124
unsigned int * cbuf
Definition: sw.h:119
qboolean clearcolour
Definition: sw.h:128
int foo
Definition: sw.h:137