| 325 | } |
| 326 | |
| 327 | void 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 | |
| 348 | IVertexBuffer *OpenGLFrameBuffer::CreateVertexBuffer() |
| 349 | { |
no test coverage detected