Fry3DX/engine/platform/window.h
Nexoniarz f3e8eca87b Fry3DX 0.4: an easy 3D modeller
Shapes with live settings, shape editing, knife and hole tools, drawing
shapes onto other objects, combining objects (add / subtract / overlap),
copies, thickness, painting with stickers and layers, a Layout tab, a
Print tab with checks, packed .fry files with autosave, export to GLB,
glTF, FBX, OBJ, 3MF, STL and PLY, folders in Layers, its own crash
screen, and a website for GitHub Pages in docs/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NMSrd5oe1GpUD7E6d825KP
2026-10-19 21:18:35 +02:00

31 lines
988 B
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <cstdint>
#include <cstdint>
#include <utility>
#include <vector>
struct SDL_Window;
namespace keel {
class Window {
public:
// opengl: a window for an OpenGL context (the backend creates it); otherwise Vulkan.
bool init(const char* title, int width, int height, bool opengl = false);
void shutdown();
SDL_Window* handle() const { return window_; }
// Size in pixels (not points); 0×0 while minimized.
void pixelSize(uint32_t& w, uint32_t& h) const;
// mode: 0 = windowed (width × height), 1 = borderless fullscreen (desktop size),
// 2 = exclusive fullscreen at the display mode closest to width × height.
void setMode(int mode, int width, int height);
void setIcon(const uint8_t* rgba, int width, int height);
// Fullscreen resolutions the display offers, largest first, no duplicates.
std::vector<std::pair<int, int>> resolutions() const;
private:
SDL_Window* window_ = nullptr;
};
} // namespace keel