mirror of
https://github.com/Nexoniarz/Fry3DX.git
synced 2026-11-03 20:44:26 +00:00
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
31 lines
988 B
C++
31 lines
988 B
C++
#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
|