reman3/Rayman_X/cpa/tempgrp/GliGlou/Drivers/SGL2/Init_SGL2.c

109 lines
3.0 KiB
C

/*
Tested with LINT
*/
#include <SGL2.H>
#include "init_gli.h"
#include "gli_st.h"
#include "GLI_Defn.h"
#include "light_st.h"
#include "PvObj_st.h"
#include "GLI_interface.h"
int Device = 0;
SGLCONTEXT SGLContext;
SGLCONTEXT2 SGLContext2;
int stSpecialTexture;
sgl_intermediate_map SGL2_IM_sPecialtexture;
extern short TEXTURETWIDDLED[];
extern GLI_tdstInternalGlobalValuesFor3dEngine *GLI_BIG_GLOBALS;
#ifdef __cplusplus
extern "C"
{
#endif
// Global initialisation.
void GLI_DRV_xInitDriver( HWND _hWnd, BOOL _bFullScreen, long _lWidth, long _lHeight, long _lBpp )
{
memset(&SGL2_IM_sPecialtexture , 0 , sizeof (sgl_intermediate_map));
SGL2_IM_sPecialtexture . id[0] = 'I';
SGL2_IM_sPecialtexture . id[1] = 'M';
SGL2_IM_sPecialtexture . id[2] = 'A';
SGL2_IM_sPecialtexture . id[3] = 'P';
SGL2_IM_sPecialtexture . pixels = TEXTURETWIDDLED;
SGL2_IM_sPecialtexture . y_dim = SGL2_IM_sPecialtexture . x_dim = 512;
Device = sgl_create_screen_device (0, 640, 480, sgl_device_16bit, sgl_double_buffer);
stSpecialTexture =
sgl_create_texture( sgl_map_rgb_565 , sgl_map_512x512 , FALSE , FALSE , &SGL2_IM_sPecialtexture , NULL);
}
// Temporary function.
/*
long GLI_INTERFACE_FUNC(GLI_DRV_lWhatIsGli)(void)
{
return GLI_C_VersionGlide;
}
*/
void GLI_DRV_vCloseDriver ()
{
}
// Return version number.
/*
long GLI_INTERFACE_FUNC(GLI_lGetNumOfVersion)(void)
{
return 0;//g_stCurLLInterface.iMode;
}
*/
// Return a pointer on the text version of GLI engine.
/*unsigned char *GLI_INTERFACE_FUNC(GLI_ucGetTextOfVersion)(void)
{
return NULL;//g_stCurLLInterface.ucTextMode;
}
*/
// Erase a rectangular region of Z buffer.
void GLI_INTERFACE_FUNC(GLI_DRV_vClearZBufferRegion)(long lXStart,long lXEnd,long lYStart,long lYEnd)
{
if (!bDrawMirrorSymetric)
GLI_BIG_GLOBALS->lDisplayMenuIsDetected = 1;
}
void GLI_INTERFACE_FUNC(GLI_vBeginDrawingTexturedMirrors)(void)
{
GLI_BIG_GLOBALS->bDrawMirrorSymetric = 1;
}
void GLI_INTERFACE_FUNC(GLI_vBeginDrawingTexturedMirrorsSurfaces)()
{
GLI_BIG_GLOBALS->lAMirrorIsDetected = 3;
}
void GLI_INTERFACE_FUNC(GLI_vEndDrawingTexturedMirrors)()
{
GLI_BIG_GLOBALS->lAMirrorIsDetected &= 1;
GLI_BIG_GLOBALS->bDrawMirrorSymetric = 0;
}
//extern long GLI_xIsGliInit();
void GLI_INTERFACE_FUNC(GLI_DRV_vFlipDevice)(long lNbFrames)
{
if (!GLI_MDRV_xIsGliInit())
return;
GLI_BIG_GLOBALS->lDisplayMenuIsDetected = 0;
GLI_BIG_GLOBALS->lAMirrorIsDetected = 0;
sgltri_render (&SGLContext);
sgltri_startofframe (&SGLContext);
}
void GLI_INTERFACE_FUNC(GLI_DRV_vClearDevice)(BOOL ZBuffer, BOOL ColorBuffer, unsigned long Color)
{
}
#ifdef __cplusplus
} //extern "C"
#endif