diff options
author | admin <admin@optics-design.com> | 2025-08-06 16:24:05 +0200 |
---|---|---|
committer | admin <admin@optics-design.com> | 2025-08-06 16:24:05 +0200 |
commit | 91c024d42e54c3db70fa9693525c0dc2b5e775fc (patch) | |
tree | ff52dd8da83533a277a8c5d320a5eab7a4d19054 /include | |
parent | a3389f25f786be7139feaca837c86442f7745745 (diff) |
last version with windows
Diffstat (limited to 'include')
-rw-r--r-- | include/glamac/graphics/glamac_view.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/include/glamac/graphics/glamac_view.h b/include/glamac/graphics/glamac_view.h index a15aaf1..c7b00d9 100644 --- a/include/glamac/graphics/glamac_view.h +++ b/include/glamac/graphics/glamac_view.h @@ -8,8 +8,8 @@ #include "../core/glamacdef.h"
// Constants for view
-#define MIN_PADDING 15 // Minimum padding in pixels (reduced for small windows)
-#define MAX_PADDING_PERCENT 0.06f // Maximum padding as percentage of window size (increased for responsiveness)
+#define MIN_PADDING 20 // Minimum padding in pixels
+#define MAX_PADDING_PERCENT 0.04f // Maximum padding as percentage of window size
#define PAN_STEP 0.05f // Step size for keyboard panning
#define ZOOM_FACTOR 1.2f // Zoom factor for zoom operations
#define MIN_ZOOM 0.5f // Minimum zoom level
@@ -59,6 +59,7 @@ typedef struct { u32 gKeyTime; // Time when 'g' was pressed for sequence timing
i32 selectedGlass; // Index of selected glass (-1 if none)
b32 viewDirty; // Flag to track if view needs re-rendering
+ u32 forceRenderFrames; // Number of additional frames to force rendering (for transitions)
// Tight clustering data
TightCluster* tightClusters; // Array of tight clusters
@@ -79,6 +80,13 @@ static inline i32 get_adaptive_padding(const ViewState* view) { return padding > MIN_PADDING ? padding : MIN_PADDING;
}
+// Helper function to calculate adaptive padding for specific dimensions
+static inline i32 get_adaptive_padding_for_size(i32 windowWidth, i32 windowHeight) {
+ (void)windowHeight; // Suppress unused parameter warning
+ i32 padding = (i32)(windowWidth * MAX_PADDING_PERCENT);
+ return padding > MIN_PADDING ? padding : MIN_PADDING;
+}
+
// Convert glass data to screen coordinates with zoom and offset
static inline void data_to_screen_coords(f32 abbeNumber, f32 refractiveIndex,
const ViewState* view, i32 *x, i32 *y) {
|