MCPcopy Create free account
hub / github.com/ZDoom/Raze / PrecacheMaterial

Method PrecacheMaterial

source/common/rendering/gl/gl_framebuffer.cpp:327–346  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

325}
326
327void OpenGLFrameBuffer::PrecacheMaterial(FMaterial *mat, int translation)
328{
329 if (mat->Source()->GetUseType() == ETextureType::SWCanvas) return;
330
331 int numLayers = mat->NumLayers();
332 MaterialLayerInfo* layer;
333 auto base = static_cast<FHardwareTexture*>(mat->GetLayer(0, translation, &layer));
334
335 if (base->BindOrCreate(layer->layerTexture, 0, CLAMP_NONE, translation, layer->scaleFlags))
336 {
337 for (int i = 1; i < numLayers; i++)
338 {
339 auto systex = static_cast<FHardwareTexture*>(mat->GetLayer(i, 0, &layer));
340 systex->BindOrCreate(layer->layerTexture, i, CLAMP_NONE, 0, layer->scaleFlags);
341 }
342 }
343 // unbind everything.
344 FHardwareTexture::UnbindAll();
345 gl_RenderState.ClearLastMaterial();
346}
347
348IVertexBuffer *OpenGLFrameBuffer::CreateVertexBuffer()
349{

Callers 1

PrecacheTexFunction · 0.45

Calls 6

GetUseTypeMethod · 0.80
SourceMethod · 0.80
NumLayersMethod · 0.80
GetLayerMethod · 0.80
BindOrCreateMethod · 0.45
ClearLastMaterialMethod · 0.45

Tested by

no test coverage detected