mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-10 23:32:06 +00:00
more cleanup and thingies
This commit is contained in:
parent
4ae9e2fd1e
commit
80744b0d51
7 changed files with 204 additions and 91 deletions
|
@ -1,21 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 7.00
|
|
||||||
Global
|
|
||||||
GlobalSection(SourceCodeControl) = preSolution
|
|
||||||
SccNumberOfProjects = 1
|
|
||||||
SccProjectName0 = reaction1
|
|
||||||
SccLocalPath0 = .
|
|
||||||
SccProvider0 = MSSCCI:Jalindi\u0020Igloo
|
|
||||||
CanCheckoutShared = true
|
|
||||||
SolutionUniqueID = {527F0046-311B-436C-A50A-829BB85EB0D9}
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectDependencies) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,10 +0,0 @@
|
||||||
""
|
|
||||||
{
|
|
||||||
"FILE_VERSION" = "9237"
|
|
||||||
"ENLISTMENT_CHOICE" = "NEVER"
|
|
||||||
"PROJECT_FILE_RELATIVE_PATH" = ""
|
|
||||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
|
||||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
|
||||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
|
||||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT"
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
goto %1
|
|
||||||
|
|
||||||
:cgame
|
|
||||||
cd cgame
|
|
||||||
call cgame
|
|
||||||
cd..
|
|
||||||
goto done
|
|
||||||
|
|
||||||
:game
|
|
||||||
cd game
|
|
||||||
call game
|
|
||||||
cd..
|
|
||||||
goto done
|
|
||||||
|
|
||||||
:ui
|
|
||||||
cd ui
|
|
||||||
call ui
|
|
||||||
cd ..
|
|
||||||
goto done
|
|
||||||
|
|
||||||
:all
|
|
||||||
cd cgame
|
|
||||||
call cgame
|
|
||||||
cd ..
|
|
||||||
cd game
|
|
||||||
call game
|
|
||||||
cd ..
|
|
||||||
cd ui
|
|
||||||
call ui
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
|
|
||||||
:done
|
|
||||||
cd\
|
|
||||||
cd quake3
|
|
||||||
cd baseq3
|
|
||||||
cd vm
|
|
||||||
copy /Y *.qvm "c:\program files\quake iii arena\reaction\vm"
|
|
||||||
del *.qvm
|
|
||||||
cd \
|
|
||||||
cd reaction
|
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
cd cgame
|
|
||||||
call cgame
|
|
||||||
cd..
|
|
||||||
cd game
|
|
||||||
call game
|
|
||||||
cd..
|
|
||||||
cd ui
|
|
||||||
call ui
|
|
||||||
cd..
|
|
||||||
cd..
|
|
||||||
cd baseq3
|
|
||||||
cd vm
|
|
||||||
copy /Y *.qvm "c:\program files\quake iii arena\source\vm"
|
|
||||||
cd ..
|
|
||||||
cd ..
|
|
||||||
cd source
|
|
||||||
|
|
3
reaction/misc/todo_ta_ui_optimizations.txt
Normal file
3
reaction/misc/todo_ta_ui_optimizations.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Item_InitControls -> add tracked cvar
|
||||||
|
Register Cvars -> init
|
||||||
|
Update cvar -> Update items
|
201
reaction/misc/ui_polyalloc.c
Normal file
201
reaction/misc/ui_polyalloc.c
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
#include "ui_local.h"
|
||||||
|
|
||||||
|
uiQuad_t uiQuadArray[MAX_QUADS];
|
||||||
|
|
||||||
|
|
||||||
|
uiQuad_t *UI_AllocQuad()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i=0; i<MAX_QUADS; i++)
|
||||||
|
{
|
||||||
|
if (!uiQuadArray[i].inUse)
|
||||||
|
{
|
||||||
|
uiQuadArray[i].inUse = qtrue;
|
||||||
|
return &uiQuadArray[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
uiQuad_t* QuadList_Add(uiQuadList_t *list, float x, float y, float w, float h, const float *u, const float *v, const float *color, float s, float t, float s2, float t2,
|
||||||
|
qhandle_t hShader)
|
||||||
|
{
|
||||||
|
if (list)
|
||||||
|
{
|
||||||
|
uiQuad_t *quad = UI_AllocQuad();
|
||||||
|
if (quad)
|
||||||
|
{
|
||||||
|
quad->next = NULL;
|
||||||
|
if (!list->qList)
|
||||||
|
{
|
||||||
|
list->qList = quad;
|
||||||
|
} else {
|
||||||
|
uiQuad_t *p=list->qList;
|
||||||
|
while (p && p->next)
|
||||||
|
{
|
||||||
|
p = p->next;
|
||||||
|
}
|
||||||
|
p->next=quad;
|
||||||
|
}
|
||||||
|
if (color)
|
||||||
|
{
|
||||||
|
quad->verts[0].modulate[0] = quad->verts[1].modulate[0] = quad->verts[2].modulate[0] = quad->verts[3].modulate[0] = ((int)(color[0]*255))&255;
|
||||||
|
quad->verts[0].modulate[1] = quad->verts[1].modulate[1] = quad->verts[2].modulate[1] = quad->verts[3].modulate[1] = ((int)(color[1]*255))&255;
|
||||||
|
quad->verts[0].modulate[2] = quad->verts[1].modulate[2] = quad->verts[2].modulate[2] = quad->verts[3].modulate[2] = ((int)(color[2]*255))&255;
|
||||||
|
quad->verts[0].modulate[3] = quad->verts[1].modulate[3] = quad->verts[2].modulate[3] = quad->verts[3].modulate[3] = ((int)(color[3]*255))&255;
|
||||||
|
quad->keepColor = qtrue;
|
||||||
|
} else {
|
||||||
|
quad->verts[0].modulate[0] = quad->verts[1].modulate[0] = quad->verts[2].modulate[0] = quad->verts[3].modulate[0] = 255;
|
||||||
|
quad->verts[0].modulate[1] = quad->verts[1].modulate[1] = quad->verts[2].modulate[1] = quad->verts[3].modulate[1] = 255;
|
||||||
|
quad->verts[0].modulate[2] = quad->verts[1].modulate[2] = quad->verts[2].modulate[2] = quad->verts[3].modulate[2] = 255;
|
||||||
|
quad->verts[0].modulate[3] = quad->verts[1].modulate[3] = quad->verts[2].modulate[3] = quad->verts[3].modulate[3] = 255;
|
||||||
|
quad->keepColor = qfalse;
|
||||||
|
}
|
||||||
|
quad->verts[0].st[0]=s;
|
||||||
|
quad->verts[0].st[1]=t;
|
||||||
|
quad->verts[1].st[0]=s2;
|
||||||
|
quad->verts[1].st[1]=t;
|
||||||
|
quad->verts[2].st[0]=s2;
|
||||||
|
quad->verts[2].st[1]=t2;
|
||||||
|
quad->verts[3].st[0]=s;
|
||||||
|
quad->verts[3].st[1]=t2;
|
||||||
|
VectorSet(quad->verts[0].xyz, 320, 320-x, 240-y);
|
||||||
|
VectorSet(quad->verts[1].xyz, 320, quad->verts[0].xyz[1]-u[0]*w, quad->verts[0].xyz[2]-u[1]*w);
|
||||||
|
VectorSet(quad->verts[2].xyz, 320, quad->verts[1].xyz[1]-v[0]*h, quad->verts[1].xyz[2]-v[1]*h);
|
||||||
|
VectorSet(quad->verts[3].xyz, 320, quad->verts[0].xyz[1]-v[0]*h, quad->verts[0].xyz[2]-v[1]*h);
|
||||||
|
//uiInfo.uiDC.polyZ += UI_POLY_Z_OFFSET;
|
||||||
|
quad->hShader = hShader;
|
||||||
|
return quad;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QuadList_SetCursorColor(uiQuadList_t *list, const float *color)
|
||||||
|
{
|
||||||
|
if (!list || !list->qCursor)
|
||||||
|
return;
|
||||||
|
if (color)
|
||||||
|
{
|
||||||
|
unsigned char r, g, b, a;
|
||||||
|
int clr;
|
||||||
|
r = color[0] * 255;
|
||||||
|
g = color[1] * 255;
|
||||||
|
b = color[2] * 255;
|
||||||
|
a = color[3] * 255;
|
||||||
|
_asm {
|
||||||
|
mov bl, b;
|
||||||
|
mov bh, a;
|
||||||
|
shl ebx, 16;
|
||||||
|
mov bl, r;
|
||||||
|
mov bh, g;
|
||||||
|
mov clr, ebx;
|
||||||
|
mov eax, list;
|
||||||
|
mov eax, [eax+4]; //list->qCursor
|
||||||
|
mov dword ptr[eax+20], ebx; //list->qCursor->verts[0].modulate
|
||||||
|
mov dword ptr[eax+44], ebx; //list->qCursor->verts[1].modulate
|
||||||
|
mov dword ptr[eax+68], ebx; //list->qCursor->verts[2].modulate
|
||||||
|
mov dword ptr[eax+92], ebx; //list->qCursor->verts[3].modulate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list->qCursor = list->qCursor->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QuadList_Print(uiQuadList_t *quadList, const float *color)
|
||||||
|
{
|
||||||
|
if (quadList && quadList->qList)
|
||||||
|
{
|
||||||
|
unsigned char r, g, b, a;
|
||||||
|
int clr;
|
||||||
|
uiQuad_t *p = quadList->qList;
|
||||||
|
/*
|
||||||
|
refdef_t scene;
|
||||||
|
|
||||||
|
memset(&scene, 0, sizeof(scene));
|
||||||
|
scene.x=0;
|
||||||
|
scene.y=0;
|
||||||
|
scene.width=640 * uiInfo.uiDC.xscale;
|
||||||
|
scene.height=480 * uiInfo.uiDC.yscale ;
|
||||||
|
scene.fov_x=90;
|
||||||
|
scene.fov_y=73.739795291688042593711225118187f;
|
||||||
|
scene.rdflags = RDF_NOWORLDMODEL;
|
||||||
|
AxisClear(scene.viewaxis);
|
||||||
|
trap_R_ClearScene();
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (color)
|
||||||
|
{
|
||||||
|
r = color[0] * 255;
|
||||||
|
g = color[1] * 255;
|
||||||
|
b = color[2] * 255;
|
||||||
|
a = color[3] * 255;
|
||||||
|
_asm {
|
||||||
|
mov al, b;
|
||||||
|
mov ah, a;
|
||||||
|
shl eax, 16;
|
||||||
|
mov al, r;
|
||||||
|
mov ah, g;
|
||||||
|
mov clr, eax;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (p)
|
||||||
|
{
|
||||||
|
if (color && !p->keepColor)
|
||||||
|
{
|
||||||
|
_asm {
|
||||||
|
mov ebx, clr;
|
||||||
|
mov eax, p;
|
||||||
|
mov dword ptr[eax+20], ebx; //p->verts[0].modulate
|
||||||
|
mov dword ptr[eax+44], ebx; //p->verts[1].modulate
|
||||||
|
mov dword ptr[eax+68], ebx; //p->verts[2].modulate
|
||||||
|
mov dword ptr[eax+92], ebx; //p->verts[3].modulate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//trap_R_AddPolyToScene(p->hShader, 4, p->verts);
|
||||||
|
//uiInfo.uiDC.pendingPolys++;
|
||||||
|
|
||||||
|
UI_AddQuadToScene(p->hShader, p->verts);
|
||||||
|
|
||||||
|
p = p->next;
|
||||||
|
}
|
||||||
|
//trap_R_RenderScene(&uiInfo.uiDC.scene2D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QuadList_Clear(uiQuadList_t *list)
|
||||||
|
{
|
||||||
|
if (list)
|
||||||
|
{
|
||||||
|
uiQuad_t *p = list->qList;
|
||||||
|
while (p)
|
||||||
|
{
|
||||||
|
p->inUse = qfalse;
|
||||||
|
p = p->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list->qList = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------
|
||||||
|
|
||||||
|
//
|
||||||
|
// ui_polyalloc.c
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct uiQuad_s
|
||||||
|
{
|
||||||
|
polyVert_t verts[4];
|
||||||
|
qhandle_t hShader;
|
||||||
|
qboolean inUse, keepColor;
|
||||||
|
struct uiQuad_s *next;
|
||||||
|
} uiQuad_t;
|
||||||
|
|
||||||
|
#define MAX_QUADS 2048
|
||||||
|
extern uiQuad_t uiQuadArray[MAX_QUADS];
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uiQuad_t *qList, *qCursor;
|
||||||
|
} uiQuadList_t;
|
||||||
|
|
Loading…
Reference in a new issue