MCPcopy Create free account
hub / github.com/defold/defold / SetDisplayProfiles

Function SetDisplayProfiles

engine/render/src/render/display_profiles.cpp:77–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75 }
76
77 uint32_t SetDisplayProfiles(HDisplayProfiles profiles, DisplayProfilesParams& params)
78 {
79 profiles->m_NameHash = params.m_NameHash;
80 if(params.m_DisplayProfilesDDF == 0x0)
81 {
82 profiles->m_Profiles.SetCapacity(0);
83 profiles->m_Qualifiers.SetCapacity(0);
84 return 0;
85 }
86
87 dmRenderDDF::DisplayProfiles& ddf = *params.m_DisplayProfilesDDF;
88 profiles->m_AutoLayoutSelection = ddf.m_AutoLayoutSelection;
89 uint32_t profile_count = 0;
90 uint32_t qualifier_count = 0;
91 for(uint32_t i = 0; i < ddf.m_Profiles.m_Count; ++i)
92 {
93 qualifier_count += ddf.m_Profiles[i].m_Qualifiers.m_Count;
94 ++profile_count;
95 }
96 if(profile_count == 0)
97 return 0;
98 profiles->m_Profiles.SetCapacity(profile_count);
99 profiles->m_Profiles.SetSize(profile_count);
100 profiles->m_Qualifiers.SetCapacity(qualifier_count);
101 profiles->m_Qualifiers.SetSize(qualifier_count);
102
103 DisplayProfiles::Qualifier* qualifier = &profiles->m_Qualifiers[0];
104 for(uint32_t i = 0; i < profile_count; ++i)
105 {
106 DisplayProfiles::Profile& profile = profiles->m_Profiles[i];
107 profile.m_Id = dmHashString64(ddf.m_Profiles[i].m_Name);
108 profile.m_QualifierCount = qualifier_count = ddf.m_Profiles[i].m_Qualifiers.m_Count;
109 profile.m_Qualifiers = qualifier;
110 for(uint32_t q = 0; q < qualifier_count; ++q)
111 {
112 dmRenderDDF::DisplayProfileQualifier& sq = ddf.m_Profiles[i].m_Qualifiers.m_Data[q];
113 qualifier->m_Width = (float) sq.m_Width;
114 qualifier->m_Height = (float) sq.m_Height;
115 qualifier->m_Dpi = 0.0f;
116
117 uint32_t device_models_count = sq.m_DeviceModels.m_Count;
118 qualifier->m_NumDeviceModels = device_models_count;
119 qualifier->m_DeviceModels = new char*[device_models_count];
120 for (uint32_t d = 0; d < device_models_count; ++d)
121 {
122 qualifier->m_DeviceModels[d] = strdup(sq.m_DeviceModels.m_Data[d]);
123 }
124 ++qualifier;
125 }
126 }
127 return profile_count;
128 }
129
130 static int IsPortrait(uint32_t width, uint32_t height)
131 {

Callers 1

TESTFunction · 0.50

Calls 2

SetCapacityMethod · 0.45
SetSizeMethod · 0.45

Tested by 1

TESTFunction · 0.40