-
Notifications
You must be signed in to change notification settings - Fork 6
/
Video.h
102 lines (80 loc) · 2.79 KB
/
Video.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
Copyright (C) 2002-2009 Rice1964
This program 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
2
of the License, or (at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _DLLINTERFACE_H_
#define _DLLINTERFACE_H_
#include "typedefs.h"
typedef struct {
HINSTANCE myhInst;
float fViWidth, fViHeight;
unsigned __int16 uViWidth, uViHeight;
unsigned __int16 uDisplayWidth, uDisplayHeight;
unsigned __int16 uFullScreenDisplayWidth, uFullScreenDisplayHeight;
unsigned __int16 uWindowDisplayWidth, uWindowDisplayHeight;
bool bDisplayFullscreen;
int uScreenScaleMode;
float fMultX, fMultY;
int vpLeftW, vpTopW, vpRightW, vpBottomW, vpWidthW, vpHeightW;
int statusBarHeight, statusBarHeightToUse;
bool screenSaverStatus;
struct{
uint32 left;
uint32 top;
uint32 right;
uint32 bottom;
uint32 width;
uint32 height;
bool needToClip;
}clipping;
}WindowSettingStruct;
extern WindowSettingStruct windowSetting;
enum CurScissorType
{
RSP_SCISSOR,
RDP_SCISSOR,
UNKNOWN_SCISSOR,
};
struct PluginStatus{
bool bGameIsRunning;
uint32 dwTvSystem;
uint32 dwNumTrisRendered;
uint32 dwNumDListsCulled;
uint32 dwNumTrisClipped;
uint32 dwNumVertices;
uint32 gDlistCount;
uint32 gUcodeCount;
uint32 gRDPTime;
BOOL ToToggleFullScreen;
uint32 curRenderBuffer;
uint32 curVIOriginReg;
CurScissorType curScissor;
uint32 lastPurgeTimeTime; // Time textures were last purged
bool bCIBufferIsRendered;
int leftRendered,topRendered,rightRendered,bottomRendered;
bool toShowCFB;
bool toCaptureScreen;
char screenCaptureFilename[MAX_PATH];
bool bAllowLoadFromTMEM;
// Frame buffer simulation related status variables
bool bN64FrameBufferIsUsed; // Frame buffer is used in the frame
bool bN64IsDrawingTextureBuffer; // The current N64 game is rendering into render_texture, to create self-rendering texture
bool bHandleN64RenderTexture; // Do we need to handle of the N64 render_texture stuff?
bool bFrameBufferIsDrawn; // flag to mark if the frame buffer is ever drawn
bool bFrameBufferDrawnByTriangles; // flag to tell if the buffer is even drawn by Triangle cmds
};
extern PluginStatus status;
extern char generalText[];
void SetVIScales();
#endif