#pragma once

/*
	GameEngine and Editor
	by John Ryland
	Copyright (c) 2023
*/

////////////////////////////////////////////////////////////////////////////////////
//	OpenGLRenderDevice

#include "NkIRenderDevice.h"

namespace GameEngine {

class OpenGLRenderDevice : public IRenderDevice
{
public:
    OpenGLRenderDevice();
    ~OpenGLRenderDevice() override;

    // void Create() override;
    // void Destroy() override;

    struct nk_image UploadTexture(Image& image, bool generateMips = true) override;

    void Prepare(int width, int height) override;
    void Draw(nk_context *ctx, int width, int height, struct nk_vec2 scale) override;
    void Present() override;

    nk_draw_null_texture* NullTexture() override;

private:
    struct device *dev;
};

} // GameEngine namespace
