Открыть главное меню

Canvas: различия между версиями

(Примечания)
 
(не показано 46 промежуточных версий 9 участников)
Строка 1:Строка 1:
Canvas (с анг. Холст) - тип диалога, использующийся для рисования картинок, примитивов, текста, элементов стандартного графического интерфейса (softbar, scrollbar, titlebar)
+
Canvas (с англ. - "Холст") - тип диалога, использующийся для рисования картинок, примитивов, текста, элементов стандартного графического интерфейса (softbar, scrollbar, titlebar).
 +
Данный диалог не подойдёт для использования при написании игр, так как достаточно медленный. Очень частая перерисовка сложной графики (картинки, текст) будет вызывать подвисания. <metadesc>Canvas (с англ. - Холст) - тип диалога, использующийся для рисования картинок, примитивов, текста, элементов стандартного графического интерфейса (softbar, scrollbar, titlebar)</metadesc>
  
 
==UIS_CreateColorCanvas==
 
==UIS_CreateColorCanvas==
<tt>UIS_DIALOG_T '''UIS_CreateColorCanvas'''( SU_PORT_T  *port, DRAWING_BUFFER_T * drawing_buffer, BOOL status_line_area )</tt>
+
<tt>UIS_DIALOG_T '''UIS_CreateColorCanvas'''( SU_PORT_T  *port, DRAWING_BUFFER_T * drawing_buffer, BOOL status_line_area );</tt>
  
 
===Описание===
 
===Описание===
Строка 12:Строка 13:
 
:Порт берется из выражения:
 
:Порт берется из выражения:
 
<ul><pre>
 
<ul><pre>
APPLICATION_T *papp = (APPLICATION_T*) app; // Объявляем вверху
+
// app обычно получаем как параметр функции, например:
 +
UINT32 MainStateEnter( EVENT_STACK_T *ev_st,  APPLICATION_T *app,  ENTER_STATE_TYPE_T type )
 +
{
 +
...
  
 
// В аргументе для функции пишем
 
// В аргументе для функции пишем
&papp->port    // Указатель
+
&app->port    // Указатель
 
</pre></ul>
 
</pre></ul>
 
</li>
 
</li>
Строка 23:Строка 27:
 
typedef struct
 
typedef struct
 
{
 
{
   UINT8 *buf;    // буфер для рисования. Должен быть равен NULL
+
   UINT8 *buf;    // Буфер для рисования. Должен быть равен NULL
   UINT16 w;      // ширина области рисования
+
   UINT16 w;      // Ширина области рисования
   UINT16 h;      // высота области рисования
+
   UINT16 h;      // Высота области рисования
 
} DRAWING_BUFFER_T;
 
} DRAWING_BUFFER_T;
 
</pre></ul>
 
</pre></ul>
Строка 31:Строка 35:
  
 
<li>'''BOOL status_line_area
 
<li>'''BOOL status_line_area
:отвечает за показ статус-строки
+
:Отвечает за показ статус-строки
true - не показывать статус-строку, false - показывать статус-строку
+
:TRUE - не показывать статус-строку, FALSE - показывать статус-строку
 
</li>
 
</li>
 
</ol>
 
</ol>
Строка 38:Строка 42:
 
===Пример===
 
===Пример===
 
<pre>
 
<pre>
// Для того чтоб диалог появился - создаем переменную
+
// Здесь запомним диалог
 
UIS_DIALOG_T dialog;
 
UIS_DIALOG_T dialog;
  
Строка 50:Строка 54:
 
dialog = UIS_CreateColorCanvas( &papp->port, &drawing_buffer, true );  
 
dialog = UIS_CreateColorCanvas( &papp->port, &drawing_buffer, true );  
  
// Далее пишем
+
if ( dialog == 0 )
&papp->dialog = dialog;
+
// ошибка, не удалось создать диалог
 +
return RESULT_FAIL;
 +
 
 +
// Для того чтоб диалог появился
 +
papp->dialog = dialog;
 
</pre>
 
</pre>
  
 
===Примечания===
 
===Примечания===
Цвета поумолчанию:
+
Цвета по умолчанию:
BackgroundColor - белый<br/>
+
*BackgroundColor - белый
FillColor - белый<br/>
+
*FillColor - белый
ForegroundColor - синий
+
*ForegroundColor - синий
  
  
 
[[Категория:Функции UIS]]
 
[[Категория:Функции UIS]]

Текущая версия на 04:29, 4 апреля 2019

Canvas (с англ. - "Холст") - тип диалога, использующийся для рисования картинок, примитивов, текста, элементов стандартного графического интерфейса (softbar, scrollbar, titlebar). Данный диалог не подойдёт для использования при написании игр, так как достаточно медленный. Очень частая перерисовка сложной графики (картинки, текст) будет вызывать подвисания.

UIS_CreateColorCanvas

UIS_DIALOG_T UIS_CreateColorCanvas( SU_PORT_T *port, DRAWING_BUFFER_T * drawing_buffer, BOOL status_line_area );

Описание

Функция создаёт диалог Canvas

Параметры

  1. SU_PORT_T *port
    Порт берется из выражения:
      // app обычно получаем как параметр функции, например:
      UINT32 MainStateEnter( EVENT_STACK_T *ev_st, APPLICATION_T *app, ENTER_STATE_TYPE_T type )
      {
      ...
      // В аргументе для функции пишем
      &app->port // Указатель
  2. DRAWING_BUFFER_T * drawing_buffer
      typedef struct
      { UINT8 *buf; // Буфер для рисования. Должен быть равен NULL UINT16 w; // Ширина области рисования UINT16 h; // Высота области рисования
      } DRAWING_BUFFER_T;
  3. BOOL status_line_area
    Отвечает за показ статус-строки
    TRUE - не показывать статус-строку, FALSE - показывать статус-строку

Пример

// Здесь запомним диалог
UIS_DIALOG_T dialog;
// Заполняем информацию об области, на которой будем рисовать
DRAWING_BUFFER_T drawing_buffer;
drawing_buffer.buf = NULL;
drawing_buffer.h = 220;
drawing_buffer.w = 176;
//Cоздаем диалог Canvas
dialog = UIS_CreateColorCanvas( &papp->port, &drawing_buffer, true );
if ( dialog == 0 )	// ошибка, не удалось создать диалог	return RESULT_FAIL;
// Для того чтоб диалог появился
papp->dialog = dialog;

Примечания

Цвета по умолчанию:

  • BackgroundColor - белый
  • FillColor - белый
  • ForegroundColor - синий