reman3/Rayman_X/cpa/tempgrp/GAM/TTrouble/P5/DspFix.c

87 lines
3.1 KiB
C

/*=========================================================================
* DspFix.c : Display fix module
* This is a part of the Game project.
*
* Version 1.0
* Creation date 04/05/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#include "ToolsCPA.h"
#include "Options/Options.h"
#include "Macros.h"
#include "Actions/AllActs.h"
#include "Structur/EngMode.h"
#include "Structur/Objects.h"
#include "Structur/ErrGame.h"
#include "MainChar.h"
#include "ChanList.h"
#include "PlayAnim\PlayAnim.h"
#include "DspFix.h"
#include "PRF.h"
/*#include "ago.h"*/
void AGO_vDisplayGAUGES(GLD_tdstViewportAttributes *p_stVpt);
/*extern ACP_tdxBool g_bUseBinaryData;*/
/**************************************************************************/
void fn_vDisplayFix(void)
{
BOOL bEnabledWrite;
#if defined(GAM_VIGNETTE)
if (g_stDisplayVignetteDuringPlaying.bAskToDisplayVignette) {
VIG_fn_vCopyVignetteToBackBuffer(&g_stDisplayVignetteDuringPlaying.stVignette);
}
#endif /* GAM_VIGNETTE */
GLI_ClearZBufferRegion(g_stEngineStructure.stFixViewportAttr.dwLeftInPixForClip,g_stEngineStructure.stFixViewportAttr.dwRightInPixForClip,g_stEngineStructure.stFixViewportAttr.dwTopInPixForClip,g_stEngineStructure.stFixViewportAttr.dwBottomInPixForClip);
GLI_xClearViewingList();
if (!GLD_bRequestWriteToViewport(g_stEngineStructure.hGLDDevice,g_stEngineStructure.hGLDFixViewport, &g_stEngineStructure.stFixViewportAttr, &bEnabledWrite))
M_GameFatalError(E_uwGameCantWriteToViewPort);
PRF_fn_vStopChrono( PRF_C_ulFctDisplaySpecific, PRF_C_pvSendToList );
PRF_fn_vStartChrono( PRF_C_ulFctDisplay, PRF_C_pvMisc );
PRF_fn_vStartChrono( PRF_C_ulFctDisplayCommon, PRF_C_pvSendFix );
GEO_fn_vComputeCameraParametersForCulling( &g_stEngineStructure.stFixViewportAttr, MTH_C_ZERO );
PRF_fn_vStopChrono( PRF_C_ulFctDisplayCommon, PRF_C_pvSendFix );
FPRF_fn_vStopChrono( PRF_C_ulFctDisplay, PRF_C_pvMisc );
PRF_fn_vStartChrono( PRF_C_ulFctDisplaySpecific, PRF_C_pvSendToList );
HIE_fn_bSendSPOToFixViewport ( &g_stEngineStructure.stFixViewportAttr, g_stEngineStructure.ulDisplayMode );
AGO_vDisplayGAUGES( &g_stEngineStructure.stFixViewportAttr );
GLI_xSendListToViewport(&g_stEngineStructure.stFixViewportAttr);
if (!GLD_bWriteToViewportFinished(g_stEngineStructure.hGLDDevice, g_stEngineStructure.hGLDFixViewport))
M_GameFatalError(E_uwGameCantWriteToViewPortFinished);
}
/*************************************************************************/
void fn_vAskToDisplayVignette(char *szName)
{
#if defined(GAM_VIGNETTE)
if (szName) {
g_stDisplayVignetteDuringPlaying.bAskToDisplayVignette = TRUE;
VIG_fn_vPreLoadVignetteInStructure(&g_stDisplayVignetteDuringPlaying.stVignette,szName,GLI_EVF_BGR565_UL);
}
else {
g_stDisplayVignetteDuringPlaying.bAskToDisplayVignette = FALSE;
VIG_fn_vFreeVignette(&g_stDisplayVignetteDuringPlaying.stVignette);
}
#else /* GAM_VIGNETTE */
g_stDisplayVignetteDuringPlaying.bAskToDisplayVignette = FALSE;
#endif /* GAM_VIGNETTE */
}