21 return supports_offscreen_msaa_;
32 return supports_texture_to_texture_blits_;
37 return supports_framebuffer_fetch_;
45 return supports_compute_subgroups_;
50 return supports_read_from_resolve_;
55 return supports_decal_sampler_address_mode_;
63 return default_color_format_;
68 return default_stencil_format_;
73 return default_depth_stencil_format_;
78 return supports_device_transient_textures_;
83 return default_glyph_atlas_format_;
88 return default_maximum_render_pass_attachment_size_;
94 bool supports_texture_to_texture_blits,
95 bool supports_framebuffer_fetch,
96 bool supports_compute,
97 bool supports_compute_subgroups,
98 bool supports_read_from_resolve,
99 bool supports_decal_sampler_address_mode,
100 bool supports_device_transient_textures,
101 bool supports_triangle_fan,
106 ISize default_maximum_render_pass_attachment_size)
107 : supports_offscreen_msaa_(supports_offscreen_msaa),
108 supports_ssbo_(supports_ssbo),
109 supports_texture_to_texture_blits_(supports_texture_to_texture_blits),
110 supports_framebuffer_fetch_(supports_framebuffer_fetch),
111 supports_compute_(supports_compute),
112 supports_compute_subgroups_(supports_compute_subgroups),
113 supports_read_from_resolve_(supports_read_from_resolve),
114 supports_decal_sampler_address_mode_(
115 supports_decal_sampler_address_mode),
116 supports_device_transient_textures_(supports_device_transient_textures),
117 supports_triangle_fan_(supports_triangle_fan),
118 default_color_format_(default_color_format),
119 default_stencil_format_(default_stencil_format),
120 default_depth_stencil_format_(default_depth_stencil_format),
121 default_glyph_atlas_format_(default_glyph_atlas_format),
122 default_maximum_render_pass_attachment_size_(
123 default_maximum_render_pass_attachment_size) {}
127 bool supports_offscreen_msaa_ =
false;
128 bool supports_ssbo_ =
false;
129 bool supports_texture_to_texture_blits_ =
false;
130 bool supports_framebuffer_fetch_ =
false;
131 bool supports_compute_ =
false;
132 bool supports_compute_subgroups_ =
false;
133 bool supports_read_from_resolve_ =
false;
134 bool supports_decal_sampler_address_mode_ =
false;
135 bool supports_device_transient_textures_ =
false;
136 bool supports_triangle_fan_ =
false;
141 ISize default_maximum_render_pass_attachment_size_ =
ISize(1, 1);
153 supports_offscreen_msaa_ = value;
158 supports_ssbo_ = value;
164 supports_texture_to_texture_blits_ = value;
170 supports_framebuffer_fetch_ = value;
175 supports_compute_ = value;
181 supports_compute_subgroups_ = value;
187 default_color_format_ = value;
193 default_stencil_format_ = value;
199 default_depth_stencil_format_ = value;
204 bool read_from_resolve) {
205 supports_read_from_resolve_ = read_from_resolve;
211 supports_decal_sampler_address_mode_ = value;
217 supports_device_transient_textures_ = value;
223 default_glyph_atlas_format_ = value;
228 supports_triangle_fan_ = value;
234 default_maximum_render_pass_attachment_size_ = size;
240 supports_offscreen_msaa_,
242 supports_texture_to_texture_blits_,
243 supports_framebuffer_fetch_,
245 supports_compute_subgroups_,
246 supports_read_from_resolve_,
247 supports_decal_sampler_address_mode_,
248 supports_device_transient_textures_,
249 supports_triangle_fan_,
254 default_maximum_render_pass_attachment_size_.value_or(
ISize{1, 1})