@@ -150,19 +150,26 @@ impl LoadedMesh {
150
150
re_math:: BoundingBox :: from_points ( vertex_positions. iter ( ) . copied ( ) )
151
151
} ;
152
152
153
- let albedo = try_get_or_create_albedo_texture (
154
- albedo_texture_buffer,
155
- albedo_texture_format,
156
- render_ctx,
157
- texture_key,
158
- & name,
159
- )
160
- . unwrap_or_else ( || {
153
+ let albedo = if let ( Some ( albedo_texture_buffer) , Some ( albedo_texture_format) ) =
154
+ ( & albedo_texture_buffer, albedo_texture_format)
155
+ {
156
+ let image_info = ImageInfo {
157
+ buffer_row_id : RowId :: ZERO , // unused
158
+ buffer : albedo_texture_buffer. 0 . clone ( ) ,
159
+ format : albedo_texture_format. 0 ,
160
+ kind : re_types:: image:: ImageKind :: Color ,
161
+ colormap : None ,
162
+ } ;
163
+ re_viewer_context:: gpu_bridge:: get_or_create_texture ( render_ctx, texture_key, || {
164
+ let debug_name = "mesh albedo texture" ;
165
+ texture_creation_desc_from_color_image ( & image_info, debug_name)
166
+ } ) ?
167
+ } else {
161
168
render_ctx
162
169
. texture_manager_2d
163
170
. white_texture_unorm_handle ( )
164
171
. clone ( )
165
- } ) ;
172
+ } ;
166
173
167
174
let mesh = re_renderer:: mesh:: Mesh {
168
175
label : name. clone ( ) . into ( ) ,
@@ -204,44 +211,3 @@ impl LoadedMesh {
204
211
self . bbox
205
212
}
206
213
}
207
-
208
- fn try_get_or_create_albedo_texture (
209
- albedo_texture_buffer : & Option < re_types:: components:: ImageBuffer > ,
210
- albedo_texture_format : & Option < re_types:: components:: ImageFormat > ,
211
- render_ctx : & RenderContext ,
212
- texture_key : u64 ,
213
- name : & str ,
214
- ) -> Option < re_renderer:: resource_managers:: GpuTexture2D > {
215
- let ( Some ( albedo_texture_buffer) , Some ( albedo_texture_format) ) =
216
- ( & albedo_texture_buffer, albedo_texture_format)
217
- else {
218
- return None ;
219
- } ;
220
-
221
- let image_info = ImageInfo {
222
- buffer_row_id : RowId :: ZERO , // unused
223
- buffer : albedo_texture_buffer. 0 . clone ( ) ,
224
- format : albedo_texture_format. 0 ,
225
- kind : re_types:: image:: ImageKind :: Color ,
226
- colormap : None ,
227
- } ;
228
-
229
- if re_viewer_context:: gpu_bridge:: required_shader_decode ( albedo_texture_format) . is_some ( ) {
230
- re_log:: warn_once!( "Mesh can't yet handle encoded image formats like NV12 & YUY2 or BGR(A) formats without a channel type other than U8. Ignoring the texture at {name:?}." ) ;
231
- return None ;
232
- }
233
-
234
- let texture =
235
- re_viewer_context:: gpu_bridge:: get_or_create_texture ( render_ctx, texture_key, || {
236
- let debug_name = "mesh albedo texture" ;
237
- texture_creation_desc_from_color_image ( & image_info, debug_name)
238
- } ) ;
239
-
240
- match texture {
241
- Ok ( texture) => Some ( texture) ,
242
- Err ( err) => {
243
- re_log:: warn_once!( "Failed to create mesh albedo texture for {name:?}: {err}" ) ;
244
- None
245
- }
246
- }
247
- }
0 commit comments