static void SW_DestroyRenderer(SDL_Renderer * renderer) { SW_RenderData *data = (SW_RenderData *) renderer->driverdata; SDL_Window *window = SDL_GetWindowFromID(renderer->window); SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window); int i; if (data) { for (i = 0; i < SDL_arraysize(data->texture); ++i) { if (data->texture[i]) { DestroyTexture(data->renderer, data->texture[i]); } } if (data->surface.format) { SDL_SetSurfacePalette(&data->surface, NULL); SDL_FreeFormat(data->surface.format); } if (display->palette) { SDL_DelPaletteWatch(display->palette, DisplayPaletteChanged, data); } if (data->renderer) { data->renderer->DestroyRenderer(data->renderer); } SDL_FreeDirtyRects(&data->dirty); SDL_free(data); } SDL_free(renderer); }
void DestroyGPUGeometry( struct GPUGeometry * g ) { int i; for( i = 1; i < g->vertexcount; i++ ) { free( g->names[i] ); } free( g->names ); if( g->uniquedata ) { DestroyIndexData( g->indices ); for( i = 0; i < g->vertexcount; i++ ) { DestroyVertexData( g->vertexdatas[i] ); } } for( i = 0; i < MAX_TEXTURES; i++ ) { if( g->todelete[i] && g->textures[i] ) { DestroyTexture( g->textures[i] ); } } free( g ); }
MovieTexture_FFMpeg::~MovieTexture_FFMpeg() { StopThread(); DestroyDecoder(); DestroyTexture(); delete decoder; }
void FinishView(ViewInfo* view) { DestroyWebView(view->web); DestroyTexture(view->test_texture); DestroyMesh(view->test_mesh); DestroyVertexDef(view->boot_vert); delete view; }
void DestroyGUIWindow( struct GUIWindow * w ) { int i; for( i = 0; i < MAX_GUI_ELEMENTS; i++ ) { struct GUIBase * g = w->elements[i]; if( g && g->DestroyMe ) g->DestroyMe( g ); } if( w->renderbuffer ) DestroyRFBuffer( w->renderbuffer ); if( w->torender ) DestroyTexture( w->torender ); }
MovieTexture_Generic::~MovieTexture_Generic() { if( m_pDecoder ) m_pDecoder->Close(); /* m_pSprite may reference the texture; delete it before DestroyTexture. */ delete m_pSprite; DestroyTexture(); delete m_pDecoder; }
hdTexture* hdTextureManager::ReloadTexture(hdTexture *texture, texturetype_t type) { // There's no point resampling if nothing is going to change. if (texture->type != type) { char fname[kMaxTexturePathSize]; snprintf(fname, kMaxTexturePathSize, "%s", texture->name); DestroyTexture(texture); return FindTexture(fname, type); } else { return texture; } }
int main(int argc, char **argv) { Initialise(800, 750, false); texture = CreateTexture("crate_sideup.png"); //CreateFont(); while(FrameworkUpdate()) { ClearScreen(); //DrawString("This works fine i hope", 550, 550, 16); DrawTexture(texture, 100, 100, 128, 128); } DestroyTexture(texture); Shutdown(); return 0; }
void UpdateView(ViewInfo* view) { DestroyTexture(view->test_texture); bitmap* img = WebViewGetPixelData(view->web); view->test_texture = CreateTexture(img); destroy_bitmap(img); glClear(GL_COLOR_BUFFER_BIT); glUseProgram(view->basic_shader); glBindBuffer(GL_ARRAY_BUFFER, view->test_mesh); ApplyVertexDef(view->boot_vert); glUniform1i(view->texture_uniform, 0); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, view->test_texture); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glBindTexture(GL_TEXTURE_2D, 0); }
static int SW_ActivateRenderer(SDL_Renderer * renderer) { SW_RenderData *data = (SW_RenderData *) renderer->driverdata; SDL_Window *window = SDL_GetWindowFromID(renderer->window); int i, n; if (data->renderer && data->renderer->ActivateRenderer) { if (data->renderer->ActivateRenderer(data->renderer) < 0) { return -1; } } if (data->updateSize) { /* Recreate the textures for the new window size */ if (renderer->info.flags & SDL_RENDERER_PRESENTFLIP2) { n = 2; } else if (renderer->info.flags & SDL_RENDERER_PRESENTFLIP3) { n = 3; } else { n = 1; } for (i = 0; i < n; ++i) { if (data->texture[i]) { DestroyTexture(data->renderer, data->texture[i]); data->texture[i] = 0; } } for (i = 0; i < n; ++i) { data->texture[i] = CreateTexture(data->renderer, data->format, window->w, window->h); if (!data->texture[i]) { return -1; } } data->updateSize = SDL_FALSE; } return 0; }
void DestroyNativeTexture(void *inNativeTexture) { GLuint tid = (GLuint)(size_t)inNativeTexture; DestroyTexture(tid); }
//////////////////////////////////////////////////////////////// // // CRenderWareSA::ModelInfoTXDRemoveTextures // // Remove the textures from the txds that are using them. // //////////////////////////////////////////////////////////////// void CRenderWareSA::ModelInfoTXDRemoveTextures ( SReplacementTextures* pReplacementTextures ) { // For each using txd for ( uint i = 0 ; i < pReplacementTextures->perTxdList.size () ; i++ ) { SReplacementTextures::SPerTxd& perTxdInfo = pReplacementTextures->perTxdList[i]; // Get textures info ushort usTxdId = perTxdInfo.usTxdId; CModelTexturesInfo* pInfo = MapFind ( ms_ModelTexturesInfoMap, usTxdId ); // Validate dassert ( MapFind ( ms_ModelTexturesInfoMap, usTxdId ) ); dassert ( ListContains ( pInfo->usedByReplacements, pReplacementTextures ) ); // Remove replacement textures for ( uint i = 0 ; i < perTxdInfo.usingTextures.size () ; i++ ) { RwTexture* pOldTexture = perTxdInfo.usingTextures[i]; RwTexDictionaryRemoveTexture ( pInfo->pTxd, pOldTexture ); dassert ( !RwTexDictionaryContainsTexture ( pInfo->pTxd, pOldTexture ) ); if ( perTxdInfo.bTexturesAreCopies ) { // Destroy the copy (but not the raster as that was not copied) pOldTexture->raster = NULL; RwTextureDestroy ( pOldTexture ); } } // Ensure there are original named textures in the txd for ( uint i = 0 ; i < pInfo->originalTextures.size () ; i++ ) { RwTexture* pOriginalTexture = pInfo->originalTextures[i]; if ( !RwTexDictionaryFindNamedTexture ( pInfo->pTxd, pOriginalTexture->name ) ) RwTexDictionaryAddTexture ( pInfo->pTxd, pOriginalTexture ); } // Remove refs ListRemove ( pInfo->usedByReplacements, pReplacementTextures ); // If no refs left, check original state and then remove info if ( pInfo->usedByReplacements.empty () ) { // txd should now contain the same textures as 'originalTextures' #ifdef MTA_DEBUG std::vector < RwTexture* > currentTextures; GetTxdTextures ( currentTextures, pInfo->pTxd ); assert ( currentTextures.size () == pInfo->originalTextures.size () ); for ( uint i = 0 ; i < pInfo->originalTextures.size () ; i++ ) { RwTexture* pOriginalTexture = pInfo->originalTextures[i]; assert ( ListContains ( currentTextures, pOriginalTexture ) ); ListRemove ( currentTextures, pOriginalTexture ); } assert ( currentTextures.empty () ); #endif // Remove info CTxdStore_RemoveRef ( pInfo->usTxdId ); MapRemove ( ms_ModelTexturesInfoMap, usTxdId ); } } // Destroy replacement textures for ( uint i = 0 ; i < pReplacementTextures->textures.size () ; i++ ) { RwTexture* pOldTexture = pReplacementTextures->textures[i]; DestroyTexture ( pOldTexture ); } pReplacementTextures->textures.clear (); }
void TextureViewGL::Destroy(nextar::RenderContext* rc) { auto gl = static_cast<RenderContext_Base_GL*>(rc); gl->DestroyTexture(texture); texture = 0; }