ufomodel.c File Reference

Starting point for model tool. More...

#include "../../shared/ufotypes.h"
#include "../../common/mem.h"
#include "../../shared/shared.h"
#include "../../common/filesys.h"
#include "../../common/qfiles.h"
#include "../../shared/typedefs.h"
#include "../../client/renderer/r_material.h"
#include "../../client/renderer/r_image.h"
#include "../../client/renderer/r_model.h"
#include "../../client/renderer/r_state.h"
#include "../../shared/images.h"
Include dependency graph for ufomodel.c:

Go to the source code of this file.

Data Structures

struct  modelConfig_s

Defines

#define VERSION   "0.2"

Typedefs

typedef struct modelConfig_s modelConfig_t
typedef void(* modelWorker_t )(const byte *buf, const char *fileName, int bufSize, void *userData)

Enumerations

enum  ufoModelAction_t {
  ACTION_NONE, ACTION_MDX, ACTION_SKINEDIT, ACTION_CHECK,
  ACTION_SKINFIX, ACTION_GLCMDSREMOVE
}

Functions

static void Exit (int exitCode) __attribute__((__noreturn__))
void Com_Printf (const char *format,...)
void Com_DPrintf (int level, const char *fmt,...)
image_tR_LoadImageData (const char *name, byte *pic, int width, int height, imagetype_t type)
 Creates a new image from RGBA data. Stores it in the gltextures array and also uploads it.
image_tR_FindImage (const char *pname, imagetype_t type)
 Finds or loads the given image.
void Com_Error (int code, const char *fmt,...)
static model_tLoadModel (const char *name)
 Loads in a model for the given name.
static void WriteToFile (const model_t *mod, const mAliasMesh_t *mesh, const char *fileName)
static int PrecalcNormalsAndTangents (const char *filename)
static void PrecalcNormalsAndTangentsBatch (const char *pattern)
static void Usage (void)
static void UM_DefaultParameter (void)
static void UM_Parameter (int argc, char **argv)
 Parameter parsing.
static void MD2HeaderCheck (const dMD2Model_t *md2, const char *fileName, int bufSize)
static void MD2SkinEdit (const byte *buf, const char *fileName, int bufSize, void *userData)
static void ModelWorker (modelWorker_t worker, const char *fileName, void *userData)
 The caller has to ensure that the model is from the expected format.
static void MD2GLCmdsRemove (const byte *buf, const char *fileName, int bufSize, void *userData)
static void MD2SkinFix (const byte *buf, const char *fileName, int bufSize, void *userData)
static void MD2Check (const byte *buf, const char *fileName, int bufSize, void *userData)
static void MD2Visitor (modelWorker_t worker, void *userData)
static void ModelCheck (void)
static void SkinFix (void)
static void GLCmdsRemove (void)
int main (int argc, char **argv)

Variables

rstate_t r_state
image_tr_noTexture
static modelConfig_t config
struct memPool_scom_genericPool
struct memPool_scom_fileSysPool
struct memPool_svid_modelPool
struct memPool_svid_imagePool

Detailed Description

Starting point for model tool.

Definition in file ufomodel.c.


Define Documentation

#define VERSION   "0.2"

Definition at line 39 of file ufomodel.c.


Typedef Documentation

typedef struct modelConfig_s modelConfig_t
typedef void(* modelWorker_t)(const byte *buf, const char *fileName, int bufSize, void *userData)

Definition at line 423 of file ufomodel.c.


Enumeration Type Documentation

Enumerator:
ACTION_NONE 
ACTION_MDX 
ACTION_SKINEDIT 
ACTION_CHECK 
ACTION_SKINFIX 
ACTION_GLCMDSREMOVE 

Definition at line 44 of file ufomodel.c.


Function Documentation

void Com_DPrintf ( int  level,
const char *  fmt,
  ... 
)

Definition at line 91 of file ufomodel.c.

References Com_Printf(), Q_vsnprintf(), and modelConfig_s::verbose.

void Com_Error ( int  code,
const char *  fmt,
  ... 
)
Note:
Both client and server can use this, and it will do the appropriate things.

Definition at line 164 of file ufomodel.c.

References Exit(), and Q_vsnprintf().

void Com_Printf ( const char *  format,
  ... 
)

Definition at line 79 of file ufomodel.c.

References Q_vsnprintf().

static void Exit ( int  exitCode  )  [static]

Definition at line 72 of file ufomodel.c.

References Mem_Shutdown().

Referenced by Com_Error(), main(), and UM_Parameter().

static void GLCmdsRemove ( void   )  [static]

Definition at line 628 of file ufomodel.c.

References Com_Printf(), MD2GLCmdsRemove(), MD2Visitor(), and UFO_SIZE_T.

Referenced by main().

static model_t* LoadModel ( const char *  name  )  [static]

Loads in a model for the given name.

Parameters:
[in] name Filename relative to base dir and with extension (models/model.md2)

Definition at line 182 of file ufomodel.c.

References byte, Com_Error(), Com_Printf(), DPMHEADER, ERR_FATAL, FS_FreeFile(), FS_LoadFile(), IDALIASHEADER, IDMD3HEADER, LittleLong(), Mem_PoolAlloc, model_s::name, Q_strcasecmp, Q_strncpyz(), qfalse, R_LoadObjModel(), R_ModLoadAliasDPMModel(), R_ModLoadAliasMD2Model(), and R_ModLoadAliasMD3Model().

Referenced by PrecalcNormalsAndTangents().

int main ( int  argc,
char **  argv 
)
static void MD2Check ( const byte buf,
const char *  fileName,
int  bufSize,
void *  userData 
) [static]
static void MD2GLCmdsRemove ( const byte buf,
const char *  fileName,
int  bufSize,
void *  userData 
) [static]
static void MD2HeaderCheck ( const dMD2Model_t md2,
const char *  fileName,
int  bufSize 
) [static]
static void MD2SkinEdit ( const byte buf,
const char *  fileName,
int  bufSize,
void *  userData 
) [static]

Todo:
: Implement this

Definition at line 404 of file ufomodel.c.

References Com_Printf(), i, LittleLong(), MD2_MAX_SKINNAME, MD2HeaderCheck(), name, dMD2Model_t::num_skins, and dMD2Model_t::ofs_skins.

Referenced by main().

static void MD2SkinFix ( const byte buf,
const char *  fileName,
int  bufSize,
void *  userData 
) [static]
static void MD2Visitor ( modelWorker_t  worker,
void *  userData 
) [static]

Definition at line 605 of file ufomodel.c.

References FS_BuildFileList(), FS_NextFileFromFileList(), and ModelWorker().

Referenced by GLCmdsRemove(), ModelCheck(), and SkinFix().

static void ModelCheck ( void   )  [static]

Definition at line 618 of file ufomodel.c.

References MD2Check(), and MD2Visitor().

Referenced by main().

static void ModelWorker ( modelWorker_t  worker,
const char *  fileName,
void *  userData 
) [static]

The caller has to ensure that the model is from the expected format.

Parameters:
worker The worker callback
fileName The file name of the model to load
userData User data that is passed to the worker function

Definition at line 431 of file ufomodel.c.

References byte, Com_Error(), DPMHEADER, ERR_DROP, ERR_FATAL, FS_FreeFile(), FS_LoadFile(), IDALIASHEADER, IDBSPHEADER, IDMD3HEADER, LittleLong(), and Q_strcasecmp.

Referenced by main(), and MD2Visitor().

static int PrecalcNormalsAndTangents ( const char *  filename  )  [static]
static void PrecalcNormalsAndTangentsBatch ( const char *  pattern  )  [static]

Definition at line 294 of file ufomodel.c.

References Com_Printf(), FS_BuildFileList(), FS_NextFileFromFileList(), and PrecalcNormalsAndTangents().

Referenced by main().

image_t* R_FindImage ( const char *  pname,
imagetype_t  type 
)

Finds or loads the given image.

See also:
R_RegisterImage
Parameters:
[in] pname Image name Path relative to the game dir (e.g. textures/tex_common/nodraw)
[in] type The type of the image. This has influence on image filters and texture parameters when uploading the image data
Note:
the image name has to be at least 5 chars long
See also:
R_LoadTGA
R_LoadJPG
R_LoadPNG

Definition at line 132 of file ufomodel.c.

References Com_Error(), Com_Printf(), Com_StripExtension(), ERR_FATAL, image_s::glowmap, Img_LoadImage(), it_glowmap, it_normalmap, it_roughnessmap, it_specularmap, it_world, MAX_QPATH, image_s::name, image_s::normalmap, R_FindImage(), R_GetImage(), R_LoadImageData(), r_noTexture, image_s::roughnessmap, image_s::specularmap, image_s::type, and va().

image_t* R_LoadImageData ( const char *  name,
byte pic,
int  width,
int  height,
imagetype_t  type 
)

Creates a new image from RGBA data. Stores it in the gltextures array and also uploads it.

Note:
This is also used as an entry point for the generated r_noTexture
Parameters:
[in] name The name of the newly created image
[in] pic The RGBA data of the image
[in] width The width of the image (power of two, please)
[in] height The height of the image (power of two, please)
[in] type The image type
See also:
imagetype_t

Definition at line 105 of file ufomodel.c.

References Com_Error(), Com_HashKey(), Com_Printf(), ERR_DROP, image_s::has_alpha, hash(), image_s::hashNext, image_s::hashPrev, image_s::height, i, len, MAX_GL_TEXTURES, MAX_IMAGEHASH, Mem_PoolAlloc, image_s::name, Q_strncpyz(), qfalse, R_BindTexture, R_GetImage(), r_numImages, R_UploadTexture(), image_s::texnum, image_s::type, and image_s::width.

static void SkinFix ( void   )  [static]

Definition at line 623 of file ufomodel.c.

References MD2SkinFix(), and MD2Visitor().

Referenced by main().

static void UM_DefaultParameter ( void   )  [static]

Definition at line 328 of file ufomodel.c.

References modelConfig_s::smoothness.

Referenced by main().

static void UM_Parameter ( int  argc,
char **  argv 
) [static]
static void Usage ( void   )  [static]

Definition at line 313 of file ufomodel.c.

References Com_Printf().

Referenced by main(), and UM_Parameter().

static void WriteToFile ( const model_t mod,
const mAliasMesh_t mesh,
const char *  fileName 
) [static]

Variable Documentation

Definition at line 66 of file ufomodel.c.

Definition at line 65 of file ufomodel.c.

Definition at line 63 of file ufomodel.c.

Definition at line 41 of file ufomodel.c.

Definition at line 68 of file ufomodel.c.

modeldata - wiped with every new map

Definition at line 67 of file ufomodel.c.


Generated by  doxygen 1.6.2