// Copyright 2012-2022 David Robillard // SPDX-License-Identifier: ISC #ifndef PUGL_SRC_WIN_H #define PUGL_SRC_WIN_H #include "internal.h" #include "pugl/pugl.h" #include #include typedef PIXELFORMATDESCRIPTOR PuglWinPFD; struct PuglWorldInternalsImpl { double timerFrequency; }; struct PuglInternalsImpl { PuglWinPFD pfd; int pfId; HWND hwnd; HCURSOR cursor; HDC hdc; WINDOWPLACEMENT oldPlacement; PAINTSTRUCT paint; PuglBlob clipboard; char* droppedUris; size_t droppedUrisLen; PuglSurface* surface; double scaleFactor; bool mapped; bool flashing; bool mouseTracked; bool minimized; bool maximized; bool fullscreen; }; PUGL_API PuglWinPFD puglWinGetPixelFormatDescriptor(const PuglHints hints); PUGL_WARN_UNUSED_RESULT PUGL_API PuglStatus puglWinCreateWindow(PuglView* view, const char* title, HWND* hwnd, HDC* hdc); PUGL_WARN_UNUSED_RESULT PUGL_API PuglStatus puglWinConfigure(PuglView* view); PUGL_WARN_UNUSED_RESULT PUGL_API PuglStatus puglWinEnter(PuglView* view, const PuglExposeEvent* expose); PUGL_WARN_UNUSED_RESULT PUGL_API PuglStatus puglWinLeave(PuglView* view, const PuglExposeEvent* expose); #endif // PUGL_SRC_WIN_H