/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcUI/src/FcUI_Render.h
128 строк
4 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef _FCUI_RENDER_H_ #define _FCUI_RENDER_H_ #include "FcUI_Setting.h" #include "FcUI_Error.h" #include "FcUI_View.h" #include "FcUI_View_Field.h" #include "FcUI_Config.h" //#include "FcUI_Raster/FcUI_Raster.h" #include "FcUI_Render/FcUI_Render_GL0_Config.h" typedef struct _FcUI_Render_t { FcUI_Config_t* mConfig; FcUI_View_t* mView; FcUI_View_Field_t* mViewField; FcUI_Window_t* mWindow; size_t mFPS; union { //FcUI_Render_Texture_t mRenderTexture; FcUI_Render_GL0_t mRenderGL0; }; } FcUI_Render_t; #include "FcUI_Render/FcUI_Render_GL0.h" FCUIDEF FcUI_Error_t FcUI_Render_Graphics_GL(FcUI_Render_t* pRender, FcUI_Window_t* pWindow, FcUI_View_t* pBasic, FcUI_View_Field_t* pViewField, FcUI_Config_t* pType); FCUIDEF FcUI_Error_t FcUI_Render_GL_free(FcUI_Render_t* pRender); //FCUIDEF size_t FcUI_Render_Basic_getHeight(FcUI_Render_t* pRender); //FCUIDEF size_t FcUI_Render_Basic_getWidth(FcUI_Render_t* pRender); //FCUIDEF FcUI_Raster_t* FcUI_Render_getRaster(FcUI_Render_t* pRender); FCUIDEF FcUI_Error_t FcUI_Render(FcUI_Render_t* pRender, FcUI_Window_t* pWindow, FcUI_View_t* pView, FcUI_View_Field_t* pViewField, FcUI_Config_t* pType); FCUIDEF FcUI_Error_t FcUI_Render_free(FcUI_Render_t* pRender); FCUIDEF FcUI_Error_t FcUI_Render(FcUI_Render_t* pRender, FcUI_Window_t* pWindow, FcUI_View_t* pView, FcUI_View_Field_t* pViewField, FcUI_Config_t* pType) { FcUI_Error_t mError; FcUI_Config_Setting_e mConfig; FCUISAFECALL(mError, (pRender && pWindow && pView), FCUI_ERROR_PARAMETERS); mError = FCUI_ERROR_NOERROR; mConfig = FcUI_Config_get(pView->mConfig); switch (mConfig) { default: case FCUI_CONFIG_NONE: break; case FCUI_CONFIG_GRAPHICS_GL_0: mError = FcUI_Render_Graphics_GL(pRender, pWindow, pView, pViewField, pType); break; } gError: return mError; } FCUIDEF FcUI_Error_t FcUI_Render_free(FcUI_Render_t* pRender) { FcUI_Error_t mError; FcUI_Config_Setting_e mConfig; FCUISAFECALL(mError, pRender, FCUI_ERROR_PARAMETERS); mError = FCUI_ERROR_NOERROR; mConfig = FcUI_Config_get(pRender->mConfig); switch (mConfig) { default: case FCUI_CONFIG_NONE: break; case FCUI_CONFIG_GRAPHICS_GL_0:mError = FcUI_Render_GL_free(pRender); break; } gError: return mError; } FCUIDEF FcUI_Raster_t* FcUI_Render_getRaster(FcUI_Render_t* pRender) { FcUI_Raster_t* mRaster; FcUI_Config_Setting_e mConfig; FCUISAFECALL(mRaster, pRender, NULL); mRaster = NULL; mConfig = FcUI_Config_get(pRender->mConfig); switch (mConfig) { default: case FCUI_CONFIG_NONE: break; case FCUI_CONFIG_GRAPHICS_GL_0:mRaster = &pRender->mRenderGL0.mRaster; break; } gError: return mRaster; } FCUIDEF FcUI_Error_t FcUI_Render_Graphics_GL(FcUI_Render_t* pRender, FcUI_Window_t* pWindow, FcUI_View_t* pView, FcUI_View_Field_t* pViewField, FcUI_Config_t* pType) { FcUI_Raster_Config_t mConfig; FcUI_Error_t mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, (pRender && pWindow && pView && pViewField), FCUI_ERROR_PARAMETERS); pRender->mConfig = pView->mConfig; pRender->mView = pView; pRender->mWindow = pWindow; pRender->mViewField = pViewField; mConfig.mImage = NULL; mConfig.mTexture = NULL; mConfig.mType = pType; mConfig.mObjects = pView->mConfig->mData.mGraphics_0.mObject; mConfig.mView = pView; mConfig.mViewField = pViewField; mConfig.mWindow = pWindow; switch (pView->mConfig->mType) { default: break; case FCUI_CONFIG_NONE: break; case FCUI_CONFIG_GRAPHICS_GL_0:mConfig.mRaster = FCUI_RASTER_GL0; break; } FCUISAFECALLF(mError, FcUI_Render_GL0(&pRender->mRenderGL0, &mConfig)); FCUISAFECALLF(mError, FcWindow_GraphicsQueue_Callback_push_GL(FcUI_Window_getWindow(pWindow), FcUI_Render_GL_0, pRender)); gError: return mError; } FCUIDEF FcUI_Error_t FcUI_Render_GL_free(FcUI_Render_t* pRender) { FcUI_Error_t mError; mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, (pRender), FCUI_ERROR_PARAMETERS); FCUISAFECALLF(mError, FcUI_Window_GraphicsQueue_Callback_free_GL(pRender->mWindow)); FCUISAFECALLF(mError, FcUI_Render_GL0_free(&pRender->mRenderGL0)); memset(pRender, 0, sizeof(*pRender)); gError: return mError; } #endif //_FCUI_RENDER_H_