123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670 |
- /*
- ===========================================================================
- Copyright (C) 1999-2005 Id Software, Inc.
- This file is part of Quake III Arena source code.
- Quake III Arena source code 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.
- Quake III Arena source code 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 Foobar; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- ===========================================================================
- */
- #ifndef __QE3_H__
- #define __QE3_H__
- // disable data conversion warnings for gl
- #pragma warning(disable : 4244) // MIPS
- #pragma warning(disable : 4136) // X86
- #pragma warning(disable : 4051) // ALPHA
-
- #include <windows.h>
- extern "C"
- {
- #include "qgl.h"
- }
- #include <math.h>
- #include <stdlib.h>
- #include <malloc.h>
- // this define to use HTREEITEM and MFC stuff in the headers
- #define QERTYPES_USE_MFC
- #include "qertypes.h"
- #include "../libs/cmdlib.h"
- #include "mathlib.h"
- #include "parse.h"
- #include "lbmlib.h"
- #include <commctrl.h>
- #include "afxres.h"
- #include "resource.h"
- #include "qedefs.h"
- #include "qfiles.h"
- #include "textures.h"
- #include "brush.h"
- #include "entity.h"
- #include "map.h"
- #include "select.h"
- #include "splines/splines.h"
- #include "camera.h"
- #include "xy.h"
- #include "z.h"
- #include "mru.h"
- #include "undo.h"
- #include "terrain.h"
- // the dec offsetof macro doesn't work very well...
- #define myoffsetof(type,identifier) ((size_t)&((type *)0)->identifier)
- // set these before calling CheckParm
- extern int myargc;
- extern char **myargv;
- double I_FloatTime (void);
- void Error (char *error, ...);
- void Warning (char *error, ...);
- int CheckParm (char *check);
- void ParseCommandLine (char *lpCmdLine);
- int ParseNum (char *str);
- char *COM_Parse (char *data);
- extern char com_token[1024];
- extern qboolean com_eof;
- #define MAX_NUM_ARGVS 32
- extern int argc;
- extern char *argv[MAX_NUM_ARGVS];
- typedef struct
- {
- int p1, p2;
- face_t *f1, *f2;
- } pedge_t;
- typedef struct
- {
- int iSize;
- int iTexMenu; // nearest, linear, etc
- float fGamma; // gamma for textures
- char szProject[256]; // last project loaded
- vec3_t colors[COLOR_LAST];
- qboolean show_names;
- qboolean show_coordinates;
- int exclude;
- int m_nTextureTweak;
- } SavedInfo_t;
- //
- // system functions
- //
- // TTimo NOTE: WINAPI funcs can be accessed by plugins
- void Sys_UpdateStatusBar( void );
- void WINAPI Sys_UpdateWindows (int bits);
- void Sys_Beep (void);
- void Sys_ClearPrintf (void);
- void Sys_Printf (char *text, ...);
- double Sys_DoubleTime (void);
- void Sys_GetCursorPos (int *x, int *y);
- void Sys_SetCursorPos (int x, int y);
- void Sys_SetTitle (char *text);
- void Sys_BeginWait (void);
- void Sys_EndWait (void);
- void Sys_Status(const char *psz, int part);
- /*
- ** most of the QE globals are stored in this structure
- */
- typedef struct
- {
- qboolean d_showgrid;
- int d_gridsize;
-
- int d_num_entities;
-
- entity_t *d_project_entity;
-
- float d_new_brush_bottom_z,
- d_new_brush_top_z;
-
- HINSTANCE d_hInstance;
-
- HGLRC d_hglrcBase;
- HDC d_hdcBase;
-
- HWND d_hwndMain;
- HWND d_hwndCamera;
- HWND d_hwndEdit;
- HWND d_hwndEntity;
- HWND d_hwndTexture;
- HWND d_hwndXY;
- HWND d_hwndZ;
- HWND d_hwndStatus;
- HWND d_hwndGroup;
- HWND d_hwndMedia;
-
- vec3_t d_points[MAX_POINTS];
- int d_numpoints;
- pedge_t d_edges[MAX_EDGES];
- int d_numedges;
- // terrain variables
- float d_terrainBrushSize;
- terrainnoise_t d_terrainNoiseType;
- terrainfalloff_t d_terrainFalloff;
- terrainbrush_t d_terrainBrush;
- int d_terrainWidth;
- int d_terrainHeight;
- terrainVert_t *d_terrapoints[MAX_TERRA_POINTS];
- int d_numterrapoints;
-
- int d_num_move_points;
- float *d_move_points[4096];
-
- qtexture_t *d_qtextures;
-
- texturewin_t d_texturewin;
-
- int d_pointfile_display_list;
-
- xy_t d_xyOld;
-
- LPMRUMENU d_lpMruMenu;
-
- SavedInfo_t d_savedinfo;
-
- int d_workcount;
-
- // connect entities uses the last two brushes selected
- int d_select_count;
- brush_t *d_select_order[2];
- vec3_t d_select_translate; // for dragging w/o making new display lists
- select_t d_select_mode;
- idPointListInterface *selectObject; //
-
- int d_font_list;
-
- int d_parsed_brushes;
-
- qboolean show_blocks;
-
- // Timo
- // tells if we are internally using brush primitive (texture coordinates and map format)
- // this is a shortcut for IntForKey( g_qeglobals.d_project_entity, "brush_primit" )
- // NOTE: must keep the two ones in sync
- BOOL m_bBrushPrimitMode;
- // used while importing brush data from file or memory buffer
- // tells if conversion between map format and internal preferences ( m_bBrushPrimitMode ) is needed
- qboolean bNeedConvert;
- qboolean bOldBrushes;
- qboolean bPrimitBrushes;
-
- vec3_t d_vAreaTL;
- vec3_t d_vAreaBR;
-
- // tells if we are using .INI files for prefs instead of registry
- qboolean use_ini;
- // even in .INI mode we use the registry for all void* prefs
- char use_ini_registry[64];
-
- //Timo
- // tells we have surface properties plugin
- qboolean bSurfacePropertiesPlugin;
- // tells we are using a BSP frontend plugin
- qboolean bBSPFrontendPlugin;
- qboolean dontDrawSelectedOutlines;
-
- } QEGlobals_t;
- //void *qmalloc (size_t size);
- char *copystring (char *s);
- char *ExpandReletivePath (char *p);
- void Pointfile_Delete (void);
- void WINAPI Pointfile_Check (void);
- void Pointfile_Next (void);
- void Pointfile_Prev (void);
- void Pointfile_Clear (void);
- void Pointfile_Draw( void );
- void Pointfile_Load( void );
- //
- // drag.c
- //
- void Drag_Begin (int x, int y, int buttons,
- vec3_t xaxis, vec3_t yaxis,
- vec3_t origin, vec3_t dir);
- void Drag_MouseMoved (int x, int y, int buttons);
- void Drag_MouseUp (int nButtons = 0);
- //
- // csg.c
- //
- void CSG_MakeHollow (void);
- void CSG_Subtract (void);
- void CSG_Merge (void);
- //
- // vertsel.c
- //
- void SetupVertexSelection (void);
- void SelectEdgeByRay (vec3_t org, vec3_t dir);
- void SelectVertexByRay (vec3_t org, vec3_t dir);
- void ConnectEntities (void);
- extern int update_bits;
- extern int screen_width;
- extern int screen_height;
- extern HANDLE bsp_process;
- extern HANDLE g_hBSPOutput;
- extern HANDLE g_hBSPInput;
- char *TranslateString (char *buf);
- void ProjectDialog (void);
- void FillTextureMenu (CStringArray* pArray = NULL);
- void FillBSPMenu (void);
- BOOL CALLBACK Win_Dialog (
- HWND hwndDlg, // handle to dialog box
- UINT uMsg, // message
- WPARAM wParam, // first message parameter
- LPARAM lParam // second message parameter
- );
- //
- // win_cam.c
- //
- void WCam_Create (HINSTANCE hInstance);
- //
- // win_xy.c
- //
- void WXY_Create (HINSTANCE hInstance);
- //
- // win_z.c
- //
- void WZ_Create (HINSTANCE hInstance);
- //
- // win_ent.c
- //
- //
- // win_main.c
- //
- void Main_Create (HINSTANCE hInstance);
- extern BOOL SaveWindowState(HWND hWnd, const char *pszName);
- extern BOOL LoadWindowState(HWND hWnd, const char *pszName);
- extern BOOL SaveRegistryInfo(const char *pszName, void *pvBuf, long lSize);
- extern BOOL LoadRegistryInfo(const char *pszName, void *pvBuf, long *plSize);
- //
- // entityw.c
- //
- BOOL CreateEntityWindow(HINSTANCE hInstance);
- void FillClassList (void);
- BOOL UpdateEntitySel(eclass_t *pec);
- void SetInspectorMode(int iType);
- int DrawTexControls(HWND hWnd);
- void SetSpawnFlags(void);
- void GetSpawnFlags(void);
- void SetKeyValuePairs(bool bClearMD3 = false);
- extern void BuildGammaTable(float g);
- BOOL GetSelectAllCriteria(CString &strKey, CString &strVal);
- // win_dlg.c
- void DoGamma(void);
- void DoFind(void);
- void DoRotate(void);
- void DoSides(bool bCone = false, bool bSphere = false, bool bTorus = false);
- void DoAbout(void);
- void DoSurface();
- /*
- ** QE function declarations
- */
- void QE_CheckAutoSave( void );
- void WINAPI QE_ConvertDOSToUnixName( char *dst, const char *src );
- void QE_CountBrushesAndUpdateStatusBar( void );
- void WINAPI QE_CheckOpenGLForErrors(void);
- void QE_ExpandBspString (char *bspaction, char *out, char *mapname, bool useTemps);
- void QE_Init (void);
- qboolean QE_KeyDown (int key, int nFlags = 0);
- qboolean QE_LoadProject (char *projectfile);
- qboolean QE_SingleBrush (bool bQuiet = false);
- // sys stuff
- void Sys_MarkMapModified (void);
- /*
- ** QE Win32 function declarations
- */
- int WINAPI QEW_SetupPixelFormat(HDC hDC, qboolean zbuffer );
- void QEW_StopGL( HWND hWnd, HGLRC hGLRC, HDC hDC );
- /*
- ** extern declarations
- */
- extern QEGlobals_t g_qeglobals;
- //++timo clean (moved into qertypes.h)
- //enum VIEWTYPE {YZ, XZ, XY};
- qboolean IsBrushSelected(brush_t* bSel);
- // curve brushes
- void Curve_MakeCurvedBrush (qboolean negative, qboolean top, qboolean bottom,
- qboolean s1, qboolean s2, qboolean s3, qboolean s4);
- void Curve_Invert (void);
- void Curve_AddFakePlanes( brush_t *B );
- void Curve_StripFakePlanes( brush_t *B );
- void Curve_BuildPoints (brush_t *b);
- void Curve_XYDraw (brush_t *b);
- void Curve_CameraDraw (brush_t *b);
- void Curve_WriteFile (char *name);
- // patch stuff
- extern bool g_bSameView;
- extern int g_nPatchClickedView;
- bool within(vec3_t vTest, vec3_t vTL, vec3_t vBR);
- void Brush_RebuildBrush(brush_t *b, vec3_t vMins, vec3_t vMaxs );
- patchMesh_t* MakeNewPatch();
- brush_t* AddBrushForPatch(patchMesh_t *pm, bool bLinkToWorld = true);
- brush_t* Patch_GenericMesh(int nWidth, int nHeight, int nOrientation = 2, bool bDeleteSource = true, bool bOverride = false);
- void Patch_ReadFile (char *name);
- void Patch_WriteFile (char *name);
- void Patch_BuildPoints (brush_t *b);
- void Patch_Move(patchMesh_t *p, const vec3_t vMove, bool bRebuild = false);
- //++timo had to add a default value for bSnap (see Patch_ApplyMatrix call from Select_ApplyMatrix in select.cpp)
- void Patch_ApplyMatrix(patchMesh_t *p, const vec3_t vOrigin, const vec3_t vMatrix[3], bool bSnap = false);
- void Patch_EditPatch();
- void Patch_Deselect();
- void Patch_Deselect(patchMesh_t *p);
- void Patch_Delete(patchMesh_t *p);
- int Patch_MemorySize(patchMesh_t *p);
- void Patch_Select(patchMesh_t *p);
- void Patch_Scale(patchMesh_t *p, const vec3_t vOrigin, const vec3_t vAmt, bool bRebuilt = true);
- void Patch_Cleanup();
- void Patch_SetView(int n);
- void Patch_SetTexture(patchMesh_t *p, texdef_t *tex_def, IPluginTexdef* pPlugTexdef = NULL);
- void Patch_BrushToMesh(bool bCone = false, bool bBevel = false, bool bEndcap = false, bool bSquare = false, int nHeight = 3);
- bool Patch_DragScale(patchMesh_t *p, vec3_t vAmt, vec3_t vMove);
- void Patch_ReadBuffer(char* pBuff, bool bSelect = false);
- void Patch_WriteFile (CMemFile* pMemFile);
- void Patch_UpdateSelected(vec3_t vMove);
- void Patch_AddRow(patchMesh_t *p);
- brush_t* Patch_Parse(bool bOld);
- void Patch_Write (patchMesh_t *p, FILE *f);
- void Patch_Write (patchMesh_t *p, CMemFile *file);
- void Patch_AdjustColumns(patchMesh_t *p, int nCols);
- void Patch_AdjustRows(patchMesh_t *p, int nRows);
- void Patch_AdjustSelected(bool bInsert, bool bColumn, bool bFlag);
- patchMesh_t* Patch_Duplicate(patchMesh_t *pFrom);
- void Patch_RotateTexture(patchMesh_t *p, float fAngle);
- void Patch_ScaleTexture(patchMesh_t *p, float fx, float fy, bool bFixup = true);
- void Patch_ShiftTexture(patchMesh_t *p, float fx, float fy);
- void Patch_DrawCam(patchMesh_t *p);
- void Patch_DrawXY(patchMesh_t *p);
- void Patch_InsertColumn(patchMesh_t *p, bool bAdd);
- void Patch_InsertRow(patchMesh_t *p, bool bAdd);
- void Patch_RemoveRow(patchMesh_t *p, bool bFirst);
- void Patch_RemoveColumn(patchMesh_t *p, bool bFirst);
- void Patch_ToggleInverted();
- void Patch_Restore(patchMesh_t *p);
- void Patch_Save(patchMesh_t *p);
- void Patch_SetTextureInfo(texdef_t* pt);
- void Patch_NaturalTexturing();
- void Patch_ResetTexturing(float fx, float fy);
- void Patch_FitTexturing();
- void Patch_BendToggle();
- void Patch_StartInsDel();
- void Patch_BendHandleTAB();
- void Patch_BendHandleENTER();
- void Patch_SelectBendNormal();
- void Patch_SelectBendAxis();
- bool WINAPI OnlyPatchesSelected();
- bool WINAPI AnyPatchesSelected();
- patchMesh_t* SinglePatchSelected();
- void Patch_CapCurrent(bool bInvertedBevel = false, bool bInvertedEndcap = false);
- void Patch_DisperseRows();
- void Patch_DisperseColumns();
- void Patch_NaturalizeSelected(bool bCap = false, bool bCycleCap = false);
- void Patch_SelectAreaPoints();
- void Patch_InvertTexture(bool bY);
- void Patch_InsDelToggle();
- void Patch_InsDelHandleTAB();
- void Patch_InsDelHandleENTER();
- void Patch_SetOverlays();
- void Patch_ClearOverlays();
- void Patch_Thicken(int nAmount, bool bSeam);
- void Patch_Transpose();
- void Patch_Freeze();
- void Patch_UnFreeze(bool bAll);
- const char* Patch_GetTextureName();
- void Patch_FindReplaceTexture(brush_t *pb, const char *pFind, const char *pReplace, bool bForce);
- void Patch_ReplaceQTexture(brush_t *pb, qtexture_t *pOld, qtexture_t *pNew);
- void Select_SnapToGrid();
- extern bool g_bPatchShowBounds;
- extern bool g_bPatchWireFrame;
- extern bool g_bPatchWeld;
- extern bool g_bPatchDrillDown;
- extern bool g_bPatchInsertMode;
- extern bool g_bPatchBendMode;
- extern vec3_t g_vBendOrigin;
- void Patch_FromTriangle(vec5_t vx, vec5_t vy, vec5_t vz);
- const char* Patch_GetKeyValue(patchMesh_t *p, const char *pKey);
- void Patch_SetEpair(patchMesh_t *p, const char *pKey, const char *pValue);
- // group stuff
- // group_t are loaded / saved through "group_info" entities
- // they hold epairs for group settings and additionnal access info (tree nodes)
- typedef struct group_s
- {
- struct group_s *next;
- epair_t *epairs;
- HTREEITEM itemOwner;
- } group_t;
- // NOTES: grouping only enabled in brush primitives mode
- // grouping works by naming brushes and setting display properties
- // the group hierarchy is not related with the map hierarchy (entity list, brushes etc.)
- // brushes with no group are under the "world" node (default for all brushes)
- // void Group_GetListFromWorld(CStringArray *pArray);
- void Group_RemoveListFromWorld();
- // void Group_SetListToWorld(CStringArray *pArray);
- // void Group_BuildTree(CTreeCtrl *pTree);
- // void Group_DecomposeTree(CTreeCtrl *pTree);
- // save group_t as "classname" "group_info" things
- void Group_Save(FILE *f);
- // clean the brushes ownerItem, clean the treeview and rebuild everything
- // is usually called when loading a new map, but may be called anytime
- void Group_Init();
- void Group_Add(entity_t *e);
- // remove a brush from it's current group, will erase the "group" epair if any, and delete the tree control node
- void Group_RemoveBrush(brush_t *b);
- void Group_AddToWorld(brush_t *b);
- // will remove brush of it's current group if any, and will add it wherever needed according to it's "group" key
- void Group_AddToProperGroup(brush_t *b);
- void Group_AddToSelected(brush_t *b);
- // allocate a new group, set name
- group_t* Group_Alloc(const char *name);
- // we use entities to store information about the groups
- // these entities are not linked into the world, and they have no brushes
- // only loaded / saved in map file
- group_t* Group_ForName(const char *name);
- // Timo
- // new brush primitive stuff
- void ComputeAxisBase(vec3_t normal,vec3_t texS,vec3_t texT );
- void FaceToBrushPrimitFace(face_t *f);
- void EmitBrushPrimitTextureCoordinates(face_t *, winding_t *);
- // EmitTextureCoordinates, is old code used for brush to brush primitive conversion
- void EmitTextureCoordinates ( float *xyzst, qtexture_t *q, face_t *f);
- void BrushPrimit_Parse(brush_t *);
- // compute a fake shift scale rot representation from the texture matrix
- void TexMatToFakeTexCoords( vec_t texMat[2][3], float shift[2], float *rot, float scale[2] );
- void FakeTexCoordsToTexMat( float shift[2], float rot, float scale[2], vec_t texMat[2][3] );
- void ConvertTexMatWithQTexture( brushprimit_texdef_t *texMat1, qtexture_t *qtex1, brushprimit_texdef_t *texMat2, qtexture_t *qtex2 );
- // texture locking
- void Face_MoveTexture_BrushPrimit(face_t *f, vec3_t delta);
- void Select_ShiftTexture_BrushPrimit( face_t *f, int x, int y );
- void RotateFaceTexture_BrushPrimit(face_t *f, int nAxis, float fDeg, vec3_t vOrigin );
- // used in CCamWnd::ShiftTexture_BrushPrimit
- void ComputeBest2DVector( vec3_t v, vec3_t X, vec3_t Y, int &x, int &y );
- //
- // eclass.cpp
- //
- extern qboolean parsing_single;
- extern qboolean eclass_found;
- extern eclass_t *eclass_e;
- void Eclass_ScanFile( char *filename );
- // for interfaces, we require main plugin header included
- #include "qerplugin.h"
- //
- // SurfaceDlg.cpp and surface properties plugin
- //
- //++timo some patch in/out stuff is in there, needs to be moved out in a dedicated interface
- void WINAPI Patch_Rebuild(patchMesh_t *p);
- #include "isurfaceplugin.h"
- extern _QERPlugSurfaceTable g_SurfaceTable;
- //
- // OpenGL interface
- //
- #include "igl.h"
- HGLRC WINAPI QERApp_GetQeglobalsHGLRC();
- void WINAPI QERApp_HookXYGLWindow(IGLWindow* pGLW);
- void WINAPI QERApp_UnHookGLWindow(IGLWindow* pGLW);
- void DrawPluginEntities( VIEWTYPE vt );
- //
- // ISelectedFace interface
- //
- #include "ISelectedFace.h"
- int WINAPI QERApp_ISelectedFace_GetTextureNumber();
- int WINAPI QERApp_GetFaceInfo(_QERFaceData *pFaceData, winding_t *pWinding);
- int WINAPI QERApp_SetFaceInfo(_QERFaceData *pFaceData);
- void WINAPI QERApp_GetTextureSize( int Size[2] );
- //
- // IEpairs interface
- //
- #include "IEpairs.h"
- #include "EpairsWrapper.h"
- //
- // IPluginEntities interface
- //
- #include "IPluginEntities.h"
- int WINAPI QERApp_EClassScanDir( char *dir, HMODULE plugID );
- //
- // ShaderInfo.cpp
- //
- #include "ShaderInfo.h"
- //
- // TexWnd.cpp
- //
- CShaderInfo* hasShader(const char *pName);
- //
- // IScripLib interface
- // GetToken, UnGetToken, etc.
- #include "IScriplib.h"
- extern FILE *g_File;
- void WINAPI QERApp_MapPrintf_FILE( char *text, ... );
- //
- // ISurfacePlugin interface
- //
- void WINAPI QERApp_GetTwoSelectedPatch( patchMesh_t **p1, patchMesh_t **p2 );
- //
- // IBSPFrontend interface
- //
- #include "IBSPFrontend.h"
- extern _QERPlugBSPFrontendTable g_BSPFrontendTable;
- extern CStringArray g_BSPFrontendCommands;
- //
- // IMessaging interface
- #include "IMessaging.h"
- #include "Messaging.h"
- void WINAPI QERApp_HookWindow(IWindowListener* pListen);
- void WINAPI QERApp_UnHookWindow(IWindowListener* pListen);
- IXYWndWrapper* WINAPI QERApp_GetXYWndWrapper();
- void WINAPI QERApp_HookListener(IListener* pListen, int Msg);
- int WINAPI QERApp_UnHookListener(IListener* pListen);
- void DispatchRadiantMsg( int Msg );
- // dispatch for IWindowListener entities
- void DispatchOnMouseMove(UINT nFlags, int x, int y);
- bool DispatchOnLButtonDown(UINT nFlags, int x, int y);
- bool DispatchOnLButtonUp(UINT nFlags, int x, int y);
- //
- // IShaders interface
- CShaderInfo* SetNameShaderInfo(qtexture_t* q, const char* pPath, const char* pName);
- qtexture_t* Texture_LoadTGATexture (unsigned char* pPixels, int nWidth, int nHeight, char* pPath, int nFlags, int nContents, int nValue );
- #include "IShaders.h"
- qtexture_t* WINAPI QERApp_TryTextureForName(const char* name);
- #endif
|