AhiSurfAlloc: различия между версиями
(wQoanEtyJXMyNQjrlY) | Synergy (обсуждение | вклад) | ||
(не показано 16 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
− | + | <metadesc>Выделяет поверхность указанного размера из видеопамяти</metadesc> | |
− | + | == Объявление == | |
+ | '''<tt>UINT32 AhiSurfAlloc( AHIDEVCONTEXT_T devCx, AHISURFACE_T *surf, AHIPOINT_T *size, AHIPIXFMT_T pixFormat, UINT32 flags );</tt> | ||
− | + | == Описание == | |
+ | Выделяет поверхность указанного размера из видеопамяти | ||
− | + | == Параметры == | |
+ | #'''AHIDEVCONTEXT_T devCx | ||
+ | #:Контекст устройства | ||
+ | #'''AHISURFACE_T *surf | ||
+ | #:Указатель на переменную, в которой будет сохранен идентификатор поверхности после выполнения функции | ||
+ | #'''AHIPOINT_T *size | ||
+ | #:Указатель на структуру, содержащую размеры выделяемой поверхности | ||
+ | #'''AHIPIXFMT_T pixFormat | ||
+ | #:[[AhiSurfAlloc#Форматы пикселей|Формат пикселей]] выделяемой поверхности. Ниже приведены возможные значения | ||
+ | #'''UINT32 flags | ||
+ | #:[[AhiSurfAlloc#Флаги|Флаги]]. Ниже приведены возможные значения | ||
− | + | == Форматы пикселей == | |
+ | {|style="text-align:left" cellspacing="1" | ||
+ | !Формат | ||
+ | ! | ||
+ | !Значение | ||
+ | |- | ||
+ | |AHIFMT_1BPP | ||
+ | |= | ||
+ | |0 | ||
+ | |- | ||
+ | |AHIFMT_4BPP | ||
+ | |= | ||
+ | |1 | ||
+ | |- | ||
+ | |AHIFMT_8BPP | ||
+ | |= | ||
+ | |2 | ||
+ | |- | ||
+ | |AHIFMT_16BPP_444 | ||
+ | |= | ||
+ | |3 | ||
+ | |- | ||
+ | |AHIFMT_16BPP_555 | ||
+ | |= | ||
+ | |4 | ||
+ | |- | ||
+ | |AHIFMT_16BPP_565 | ||
+ | |= | ||
+ | |5 | ||
+ | |} | ||
− | + | == Флаги == | |
+ | {|style="text-align:left" cellspacing="1" | ||
+ | !Флаг | ||
+ | ! | ||
+ | !Значение | ||
+ | ! | ||
+ | !Описание | ||
+ | |- | ||
+ | |AHIFLAG_DISPLAYPIXFMT | ||
+ | |= | ||
+ | |0x00000002 | ||
+ | |width="48px"| | ||
+ | |Формат пикселей будет использован такой же, как у отображаемой поверхности | ||
+ | |- | ||
+ | |AHIFLAG_SYSMEMORY | ||
+ | |= | ||
+ | |0x00000008 | ||
+ | | | ||
+ | |Поверхность будет выделена в системной памяти | ||
+ | |- | ||
+ | |AHIFLAG_EXTMEMORY | ||
+ | |= | ||
+ | |0x00000020 | ||
+ | | | ||
+ | |Поверхность будет выделена в внешней памяти | ||
+ | |- | ||
+ | |AHIFLAG_INTMEMORY | ||
+ | |= | ||
+ | |0x00000040 | ||
+ | | | ||
+ | |Поверхность будет выделена в внутренней памяти | ||
+ | |} | ||
− | + | == Результат == | |
+ | #'''UINT32 | ||
+ | #:Результат выделения поверхности, RESULT_OK если ошибок нет | ||
− | + | == Пример == | |
+ | <pre> | ||
+ | UINT32 result; | ||
+ | AHIDEVCONTEXT_T uCtx; | ||
+ | AHISURFACE_T surf; | ||
+ | AHIPOINT_T pt; | ||
+ | |||
+ | pt.x = 48; | ||
+ | pt.y = 48; | ||
+ | |||
+ | ... | ||
+ | |||
+ | result = AhiSurfAlloc(uCtx, &surf, &pt, AHIFMT_16BPP_565, AHIFLAG_EXTMEMORY); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == См. также == | ||
+ | [[AhiDevOpen]] | ||
+ | |||
+ | [[Категория:Функции AHI]] |
Текущая версия на 05:28, 1 апреля 2019
Объявление
UINT32 AhiSurfAlloc( AHIDEVCONTEXT_T devCx, AHISURFACE_T *surf, AHIPOINT_T *size, AHIPIXFMT_T pixFormat, UINT32 flags );
Описание
Выделяет поверхность указанного размера из видеопамяти
Параметры
- AHIDEVCONTEXT_T devCx
- Контекст устройства
- AHISURFACE_T *surf
- Указатель на переменную, в которой будет сохранен идентификатор поверхности после выполнения функции
- AHIPOINT_T *size
- Указатель на структуру, содержащую размеры выделяемой поверхности
- AHIPIXFMT_T pixFormat
- Формат пикселей выделяемой поверхности. Ниже приведены возможные значения
- UINT32 flags
- Флаги. Ниже приведены возможные значения
Форматы пикселей
Формат | Значение | |
---|---|---|
AHIFMT_1BPP | = | 0 |
AHIFMT_4BPP | = | 1 |
AHIFMT_8BPP | = | 2 |
AHIFMT_16BPP_444 | = | 3 |
AHIFMT_16BPP_555 | = | 4 |
AHIFMT_16BPP_565 | = | 5 |
Флаги
Флаг | Значение | Описание | ||
---|---|---|---|---|
AHIFLAG_DISPLAYPIXFMT | = | 0x00000002 | Формат пикселей будет использован такой же, как у отображаемой поверхности | |
AHIFLAG_SYSMEMORY | = | 0x00000008 | Поверхность будет выделена в системной памяти | |
AHIFLAG_EXTMEMORY | = | 0x00000020 | Поверхность будет выделена в внешней памяти | |
AHIFLAG_INTMEMORY | = | 0x00000040 | Поверхность будет выделена в внутренней памяти |
Результат
- UINT32
- Результат выделения поверхности, RESULT_OK если ошибок нет
Пример
UINT32 result; AHIDEVCONTEXT_T uCtx; AHISURFACE_T surf; AHIPOINT_T pt; pt.x = 48; pt.y = 48; ... result = AhiSurfAlloc(uCtx, &surf, &pt, AHIFMT_16BPP_565, AHIFLAG_EXTMEMORY);