OpenGL display driver

This commit is contained in:
elasota
2020-09-26 16:45:52 -04:00
parent da3cdb3a17
commit 45aa5b4cba
26 changed files with 2922 additions and 33 deletions

View File

@@ -2,7 +2,8 @@
enum EGpDisplayDriverType
{
EGpDisplayDriverType_D3D11,
EGpDisplayDriverType_D3D11,
EGpDisplayDriverType_SDL_GL2,
EGpDisplayDriverType_Count,
};

View File

@@ -1,25 +0,0 @@
#pragma once
#include "IGpCursor_Win32.h"
#include "GpWindows.h"
class GpCursor_Win32 final : public IGpCursor_Win32
{
public:
void Destroy() override;
const HCURSOR &GetHCursor() const override;
void IncRef() override;
void DecRef() override;
static IGpCursor_Win32 *Load(const wchar_t *path);
private:
GpCursor_Win32(HCURSOR cursor);
~GpCursor_Win32();
HCURSOR m_cursor;
int m_refCount;
};

View File

@@ -3,6 +3,8 @@
#include "GpPixelFormat.h"
#include "EGpStandardCursor.h"
#include <stdint.h>
struct IGpDisplayDriverSurface;
struct IGpCursor;
struct IGpPrefsHandler;
@@ -30,7 +32,7 @@ public:
virtual void GetDisplayResolution(unsigned int *width, unsigned int *height) = 0;
virtual IGpDisplayDriverSurface *CreateSurface(size_t width, size_t height, GpPixelFormat_t pixelFormat) = 0;
virtual IGpDisplayDriverSurface *CreateSurface(size_t width, size_t height, size_t pitch, GpPixelFormat_t pixelFormat) = 0;
virtual void DrawSurface(IGpDisplayDriverSurface *surface, int32_t x, int32_t y, size_t width, size_t height, const GpDisplayDriverSurfaceEffects *effects) = 0;
virtual IGpCursor *LoadCursor(bool isColor, int cursorID) = 0;

View File

@@ -4,6 +4,6 @@
struct IGpFiber
{
virtual void YieldTo() = 0;
virtual void YieldTo(IGpFiber *toFiber) = 0;
virtual void Destroy() = 0;
};