87 lines
3.1 KiB
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 */
|
|
}
|