/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcUI/src/FcUI_Program/FcUI_Program_GL.h
92 строки
3 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef _FCUI_PROGRAM_GL_H_ #define _FCUI_PROGRAM_GL_H_ #include "FcUI_Setting.h" #include "FcUI_Error.h" #include "FcWindow.h" typedef enum _FcUI_Program_Type_e { FCUI_PROGRAM_GL_BASIC, FCUI_PROGRAM_GL_GRAPHICS_0, FCUI_PROGRAM_NONE } FcUI_Program_Type_e; typedef struct _FcUI_Program_GL_t { size_t mTypeProgram; FcGL_Program_t mMainProgram; }FcUI_Program_GL_t; #ifdef __cplusplus extern "C" { #endif extern const char* pFcUI_Program_Vertex[]; extern const char* pFcUI_Program_Fragment[]; #ifdef __cplusplus } #endif FCUIDEF FcWindow_Error_t FcUI_Program_GL_queue(FcWindow_t* pWindow, void* pProgram); FCUIDEF FcWindow_Error_t FcUI_Program_GL_free_queue(FcWindow_t* pWindow, void* pProgram); FCUIDEF FcUI_Error_t FcUI_Program_GL(FcUI_Program_GL_t* pProgram, FcWindow_t* pWindow, FcUI_Program_Type_e mProgramType); FCUIDEF FcUI_Error_t FcUI_Program_GL_free(FcUI_Program_GL_t* pProgram, FcWindow_t* pWindow); FCUIDEF FcUI_Error_t FcUI_Program_GL(FcUI_Program_GL_t* pProgram, FcWindow_t* pWindow, FcUI_Program_Type_e mProgramType) { FcUI_Error_t mError; mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, (pWindow && pProgram), FCUI_ERROR_PARAMETERS); switch (mProgramType) { case FCUI_PROGRAM_GL_BASIC: pProgram->mTypeProgram = mProgramType; FCUISAFECALLF(mError, FcWindow_GraphicsQueue_push_GL(pWindow, FcUI_Program_GL_queue, pProgram)); break; case FCUI_PROGRAM_GL_GRAPHICS_0: pProgram->mTypeProgram = mProgramType; FCUISAFECALLF(mError, FcWindow_GraphicsQueue_push_GL(pWindow, FcUI_Program_GL_queue, pProgram)); default: case FCUI_PROGRAM_NONE: break; } pProgram->mTypeProgram = mProgramType; gError: return mError; } FCUIDEF FcUI_Error_t FcUI_Program_GL_free(FcUI_Program_GL_t* pProgram, FcWindow_t* pWindow) { FcUI_Error_t mError; mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, (pProgram), FCUI_ERROR_PARAMETERS); FCUISAFECALLF(mError, FcWindow_GraphicsQueue_push_GL(pWindow, FcUI_Program_GL_free_queue, pProgram)); //FcGL_Program_free(FcUI_Platform_getPlatform_GL(pProgram->mPlatform), &pProgram->mMainProgram); gError: return mError; } FCUIDEF FcWindow_Error_t FcUI_Program_GL_queue(FcWindow_t* pWindow, void* pProgram) { FcWindow_Error_t mError; FcUI_Program_GL_t* mProgram; const FcPlatform_GL_t* pPlatform_GL; FCUISAFECALL(mError, (pWindow && pProgram), FCUI_ERROR_PARAMETERS); mError = FCUI_ERROR_NOERROR; mProgram = (FcUI_Program_GL_t*)pProgram; pPlatform_GL = FcWindow_getPlatform_GL(pWindow); mError = FcGL_Program(pPlatform_GL, pFcUI_Program_Vertex[mProgram->mTypeProgram], NULL, NULL, pFcUI_Program_Fragment[mProgram->mTypeProgram], NULL, &mProgram->mMainProgram); gError: return mError; } FCUIDEF FcWindow_Error_t FcUI_Program_GL_free_queue(FcWindow_t* pWindow, void* pProgram) { FcWindow_Error_t mError; FcUI_Program_GL_t* mProgram; FCUISAFECALL(mError, (pWindow && pProgram), FCUI_ERROR_PARAMETERS); mError = FCUI_ERROR_NOERROR; mProgram = (FcUI_Program_GL_t*)pProgram; FcGL_Program_free(FcWindow_getPlatform_GL(pWindow), &mProgram->mMainProgram); gError: return mError; } #endif //_FCUI_PROGRAM_GL_H_