forked from VCCE/VCC
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectX.h
More file actions
66 lines (54 loc) · 2.1 KB
/
DirectX.h
File metadata and controls
66 lines (54 loc) · 2.1 KB
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
#pragma once
// Copyright 2015 by Joseph Forgion
// This file is part of VCC (Virtual Color Computer).
//
// VCC (Virtual Color Computer) 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 version 3 of the License, or
// (at your option) any later version.
//
// VCC (Virtual Color Computer) 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 VCC. If not, see <http://www.gnu.org/licenses/>.
//
// 2025/04/10 - Craig Allsop - Add OpenGL rendering.
//
#include "IDisplay.h"
#include "defines.h"
#if USE_DIRECTX
namespace VCC
{
struct DirectX : public IDisplayDirectX
{
enum
{
ERR_UNSUPPORTED = 100, // unsupported command
ERR_BADOPTION, // invalid option being set
ERR_UNKNOWN
};
explicit DirectX(ISystemState* state);
int Setup(void* hwnd, int width, int height, int statusHeight, bool fullscreen) override;
int Render() override;
int Present() override;
int Cleanup() override;
int SetOption(int flagOption, bool enabled) override;
int GetSurface(Pixel** pixels) override;
int GetRect(int rectOption, Rect* rect) override;
int LockSurface() override;
int UnlockSurface() override;
void DebugDrawLine(float x1, float y1, float x2, float y2, Pixel color) override {};
void DebugDrawBox(float x, float y, float w, float h, Pixel color) override {};
int RenderSignalLostMessage() override;
int RenderStatusLine(char* statusText) override;
private:
ISystemState* state;
void GetDisplayArea(Rect* rect) const;
void GetSurfaceArea(Rect* rect) const;
void CheckSurfaces() const;
};
}
#endif // USE_DIRECTX