#pragma once #include #include #include typedef struct { ID3D11Device* device; ID3D11DeviceContext* context; IDXGISwapChain* swap_chain; ID3D11RenderTargetView* render_target; ID3D11DepthStencilView* depth_stencil; ID3D11Texture2D* depth_texture; uint32_t width; uint32_t height; int vsync; } GraphicsDevice; GraphicsDevice* graphics_device_create(void); void graphics_device_destroy(GraphicsDevice* d); int graphics_device_init(GraphicsDevice* d, void* hwnd, uint32_t w, uint32_t h, int vsync); void graphics_device_resize(GraphicsDevice* d, uint32_t w, uint32_t h); void graphics_device_clear(GraphicsDevice* d, float r, float g, float b, float a); void graphics_device_present(GraphicsDevice* d);