/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcUI/src/FcUI_Program.h
110 строк
3 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef _FCUI_PROGRAM_H_ #define _FCUI_PROGRAM_H_ #include "FcUI_Setting.h" #include "FcUI_Error.h" #include "FcUI_Window.h" #include "FcUI_Program/FcUI_Program_GL.h" typedef struct _FcUI_Program_Config_t { FcUI_Program_Type_e mProgramType; } FcUI_Program_Config_t; typedef struct _FcUI_Program_t { FcUI_Program_Type_e mProgramType; FcUI_Program_GL_t mProgramGL; FcWindow_t *mWindow; } FcUI_Program_t; FCUIDEF FcUI_Error_t FcUI_Program(FcUI_Program_t* pProgram, FcUI_Window_t* pWindow, FcUI_Program_Type_e mProgramType); FCUIDEF size_t FcUI_Program_getProgram(FcUI_Program_t* pProgram); FCUIDEF FcGL_Program_t* FcUI_Program_getProgram_GL(FcUI_Program_t* pProgram); FCUIDEF FcUI_Error_t FcUI_Program_free(FcUI_Program_t* pProgram); FCUIDEF FcWindow_Error_t FcUI_Program_queue(FcWindow_t* pWindow, FcUI_Program_t* pProgram, FcUI_Program_Type_e mProgramType); FCUIDEF FcWindow_Error_t FcUI_Program_Basic_use_queue(FcWindow_t* pWindow, FcUI_Program_t* pProgram); FCUIDEF FcWindow_Error_t FcUI_Program_free_queue(FcUI_Program_t* pProgram); FCUIDEF FcUI_Error_t FcUI_Program(FcUI_Program_t* pProgram, FcUI_Window_t* pWindow, FcUI_Program_Type_e mProgramType) { FcUI_Error_t mError; mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, pProgram, FCUI_ERROR_PARAMETERS); switch (mProgramType) { case FCUI_PROGRAM_NONE: pProgram->mProgramType = FCUI_PROGRAM_NONE; break; case FCUI_PROGRAM_GL_BASIC: pProgram->mProgramType = FCUI_PROGRAM_GL_BASIC; FCUISAFECALLF(mError, FcUI_Program_GL(&pProgram->mProgramGL, FcUI_Window_getWindow(pWindow), FCUI_PROGRAM_GL_BASIC)); break; case FCUI_PROGRAM_GL_GRAPHICS_0: pProgram->mProgramType = FCUI_PROGRAM_GL_BASIC; FCUISAFECALLF(mError, FcUI_Program_GL(&pProgram->mProgramGL, FcUI_Window_getWindow(pWindow), FCUI_PROGRAM_GL_GRAPHICS_0)); break; } pProgram->mWindow = FcUI_Window_getWindow(pWindow); gError: return mError; } FCUIDEF size_t FcUI_Program_getProgram(FcUI_Program_t* pProgram) { size_t mID; FCUISAFECALL(mID, pProgram, 0); switch (pProgram->mProgramType) { default: case FCUI_PROGRAM_NONE: mID = 0; break; case FCUI_PROGRAM_GL_BASIC: mID = FcGL_Program_getProgram_ID(&pProgram->mProgramGL.mMainProgram); break; } gError: return mID; } FCUIDEF FcGL_Program_t* FcUI_Program_getProgram_GL(FcUI_Program_t* pProgram) { FcGL_Program_t* mProgram; FCUISAFECALL(mProgram, (pProgram), NULL); switch (pProgram->mProgramType) { default: case FCUI_PROGRAM_NONE: mProgram = NULL; break; case FCUI_PROGRAM_GL_BASIC: mProgram = &pProgram->mProgramGL.mMainProgram; break; } gError: return mProgram; } FCUIDEF FcUI_Error_t FcUI_Program_free(FcUI_Program_t* pProgram) { FcUI_Error_t mError; mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, pProgram, FCUI_ERROR_PARAMETERS); switch (pProgram->mProgramType) { case FCUI_PROGRAM_NONE: break; case FCUI_PROGRAM_GL_BASIC: FCUISAFECALLF(mError, FcUI_Program_GL_free(&pProgram->mProgramGL, pProgram->mWindow)); break; case FCUI_PROGRAM_GL_GRAPHICS_0: break; } gError: return mError; } #endif //_FCUI_PROGRAM_H_