Blender V4.3
GHOST_DisplayManager.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
14#include "GHOST_Debug.hh"
15
17
19
21{
22 GHOST_TSuccess success;
24 success = initializeSettings();
26 }
27 else {
28 success = GHOST_kSuccess;
29 }
30 return success;
31}
32
34{
35 /* Don't know if we have a display. */
36 return GHOST_kFailure;
37}
38
40 int32_t &numSettings) const
41{
42 GHOST_TSuccess success;
43
45 "GHOST_DisplayManager::getNumDisplaySettings(): m_settingsInitialized=false");
46 uint8_t numDisplays;
47 success = getNumDisplays(numDisplays);
48 if (success == GHOST_kSuccess) {
49 if (display < numDisplays) {
50 numSettings = m_settings[display].size();
51 }
52 else {
53 success = GHOST_kFailure;
54 }
55 }
56 return success;
57}
58
60 int32_t index,
61 GHOST_DisplaySetting &setting) const
62{
63 GHOST_TSuccess success;
64
66 "GHOST_DisplayManager::getNumDisplaySettings(): m_settingsInitialized=false");
67 uint8_t numDisplays;
68 success = getNumDisplays(numDisplays);
69 if (success == GHOST_kSuccess) {
70 if (display < numDisplays && (uint8_t(index) < m_settings[display].size())) {
71 setting = m_settings[display][index];
72 }
73 else {
74 success = GHOST_kFailure;
75 }
76 }
77 return success;
78}
79
85
91
93 const GHOST_DisplaySetting &setting,
94 GHOST_DisplaySetting &match) const
95{
98 "GHOST_DisplayManager::findMatch(): m_settingsInitialized=false");
99
100 const int criteria[4] = {
101 int(setting.xPixels),
102 int(setting.yPixels),
103 int(setting.bpp),
104 int(setting.frequency),
105 };
106 int capabilities[4];
107 double field, score;
108 double best = 1e12; /* A big number. */
109 int found = 0;
110
111 /* Look at all the display modes. */
112 for (int i = 0; (i < int(m_settings[display].size())); i++) {
113 /* Store the capabilities of the display device. */
114 capabilities[0] = m_settings[display][i].xPixels;
115 capabilities[1] = m_settings[display][i].yPixels;
116 capabilities[2] = m_settings[display][i].bpp;
117 capabilities[3] = m_settings[display][i].frequency;
118
119 /* Match against all the fields of the display settings. */
120 score = 0;
121 for (int j = 0; j < 4; j++) {
122 field = capabilities[j] - criteria[j];
123 score += field * field;
124 }
125
126 if (score < best) {
127 found = i;
128 best = score;
129 }
130 }
131
132 match = m_settings[display][found];
133
134 GHOST_PRINT("GHOST_DisplayManager::findMatch(): settings of match:\n");
135 GHOST_PRINT(" setting.xPixels=" << match.xPixels << "\n");
136 GHOST_PRINT(" setting.yPixels=" << match.yPixels << "\n");
137 GHOST_PRINT(" setting.bpp=" << match.bpp << "\n");
138 GHOST_PRINT(" setting.frequency=" << match.frequency << "\n");
139
140 return success;
141}
142
144{
145 uint8_t numDisplays;
146 GHOST_TSuccess success = getNumDisplays(numDisplays);
147 if (success == GHOST_kSuccess) {
148 for (uint8_t display = 0; (display < numDisplays) && (success == GHOST_kSuccess); display++) {
149 GHOST_DisplaySettings displaySettings;
150 m_settings.push_back(displaySettings);
151 int32_t numSettings;
152 success = getNumDisplaySettings(display, numSettings);
153 if (success == GHOST_kSuccess) {
154 int32_t index;
155 GHOST_DisplaySetting setting;
156 for (index = 0; (index < numSettings) && (success == GHOST_kSuccess); index++) {
157 success = getDisplaySetting(display, index, setting);
158 m_settings[display].push_back(setting);
159 }
160 }
161 else {
162 break;
163 }
164 }
165 }
166 return success;
167}
#define GHOST_ASSERT(x, info)
#define GHOST_PRINT(x)
GHOST_TSuccess
Definition GHOST_Types.h:87
@ GHOST_kFailure
Definition GHOST_Types.h:87
@ GHOST_kSuccess
Definition GHOST_Types.h:87
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
virtual GHOST_TSuccess getDisplaySetting(uint8_t display, int32_t index, GHOST_DisplaySetting &setting) const
GHOST_TSuccess findMatch(uint8_t display, const GHOST_DisplaySetting &setting, GHOST_DisplaySetting &match) const
virtual GHOST_TSuccess setCurrentDisplaySetting(uint8_t display, const GHOST_DisplaySetting &setting)
std::vector< GHOST_DisplaySettings > m_settings
GHOST_TSuccess initializeSettings()
virtual GHOST_TSuccess initialize()
virtual GHOST_TSuccess getNumDisplaySettings(uint8_t display, int32_t &numSettings) const
virtual GHOST_TSuccess getCurrentDisplaySetting(uint8_t display, GHOST_DisplaySetting &setting) const
virtual GHOST_TSuccess getNumDisplays(uint8_t &numDisplays) const
std::vector< GHOST_DisplaySetting > GHOST_DisplaySettings
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
signed int int32_t
Definition stdint.h:77
unsigned char uint8_t
Definition stdint.h:78