/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcUI/src/FcUI_View_Field.h
78 строк
2 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef _FCUI_VIEW_FIELD_H_ #define _FCUI_VIEW_FIELD_H_ #include "FcUI_VIew_Field/FcUI_View_Field_Config.h" FCUIDEF FcUI_Error_t FcUI_View_Field(FcUI_View_Field_t* pViewField, FcUI_Window_t* pWindow, FcUI_View_t* pView); FCUIDEF void FcUI_View_Field_init(FcUI_View_Field_t* pViewField, FcUI_View_Info_t* pInfo, size_t numberInfo); FCUIDEF FcUI_Error_t FcUI_View_Field_free(FcUI_View_Field_t* pView); FCUIDEF FcUI_Error_t FcUI_View_Field(FcUI_View_Field_t* pViewField, FcUI_Window_t* pWindow, FcUI_View_t* pView) { size_t x, y, mWidth, mHeight; FcUI_View_Info_t* mInfo; FcUI_Error_t mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, (pViewField && pWindow && pView), FCUI_ERROR_PARAMETERS); mWidth = FcUI_Window_getClientWidth(pWindow); mHeight = FcUI_Window_getClientHeight(pWindow); pViewField->mField = (FcUI_View_Info_t**)calloc(1, mWidth * mHeight * sizeof(FcUI_View_Info_t*)); if (pViewField->mField == NULL) { mError = FCUI_ERROR_OOM; goto gError; } pViewField->mWidth = mWidth; pViewField->mHeight = mHeight; pViewField->pWindow = pWindow; switch (FcUI_Config_get(pView->mConfig)) { case FCUI_CONFIG_NONE: break; case FCUI_CONFIG_GRAPHICS_GL_0: FcUI_View_Field_init(pViewField, pView->mData.mGraphics_GL_0.mDrawElement2Info, pView->mData.mGraphics_GL_0.mNumberObjects); break; } gError: return mError; } FCUIDEF void FcUI_View_Field_init(FcUI_View_Field_t* pViewField, FcUI_View_Info_t* pInfo, size_t numberInfo) { size_t x, y, i, mWidth; mWidth = pViewField->mWidth; for (i = 0; i < pViewField->mHeight * pViewField->mWidth; i++) pViewField->mField[i] = NULL; for (i = 0; i < numberInfo; i++) { for (y = pInfo[i].mBBOX_y0; y < pInfo[i].mBBOX_y1; y++) { for (x = pInfo[i].mBBOX_x0; x < pInfo[i].mBBOX_x1; x++) { pViewField->mField[y * mWidth + x] = &pInfo[i]; } } } } FCUIDEF void FcUI_View_Field_Info_init(FcUI_View_Field_t* pViewField, FcUI_View_Info_t* pInfo) { size_t x, y, i, mWidth; mWidth = pViewField->mWidth; for (y = pInfo->mBBOX_y0; y < pInfo->mBBOX_y1; y++) { for (x = pInfo->mBBOX_x0; x < pInfo->mBBOX_x1; x++) { pViewField->mField[y * mWidth + x] = pInfo; } } } FCUIDEF FcUI_Error_t FcUI_View_Field_free(FcUI_View_Field_t* pView) { FcUI_Error_t mError = FCUI_ERROR_NOERROR; FCUISAFECALL(mError, pView, FCUI_ERROR_PARAMETERS); free(pView->mField); memset(pView, 0, sizeof(*pView)); gError: return mError; } #endif //_FCUI_VIEW_FIELD_H_