gis_render_sm_update()

Масштабирование карты.

Прототип:

#include <gis/gis_surfacemanager.h>
int gis_render_sm_update( gis_render_sm_context_t sm_ctx, uint32_t surface_extension_px, double blit_region_rate );

Аргументы:

sm_ctx
Контекст движка рендеринга Surface Manager.
new_scale_denom
Новый знаменатель масштаба.

Библиотека:

gisrender

Описание:

Функция устанавливает новые параметры Surface Manager: offscreen_ext_px и blit_region_rate. В процессе выполнения поверхность отображения будет повторно выделена. Если изменяются размеры окна отображения функцией gis_data_engine_set_canvas_size(), то обязательно необходимо затем вызвать текущую функцию.

Возвращаемое значение:

EOK
Успешное завершение
EINVAL
Некорректные параметры функции
ENOENT
Контекст Surface Manager не был инициализирован
ENOMEM
Не удалось выделить поверхность
EFAULT
Ошибка выполнения

Примеры использования:

gis_render_sm_context_t sm_ctx;
gis_data_engine_context_t ctx;
void MapWidget::resizeEvent(QResizeEvent *event)
{
gis_data_engine_set_canvas_size( ctx, event->size().width(), event->size().height() );
if ( gis_render_sm_update( sm_ctx, offscreen_ext_px, 0.5 ) != EOK ) {
printf( "gis_render_sm_update failed - Need to rollback.\n" );
}
}

Классификация:

Картографический фреймворк для ЗОСРВ "Нейтрино"

Способ использования Использование разрешено
Обработчик прерывания Нет
Обработчик сигналов Нет
В потоке Да

Тематические ссылки:

gis_render_sm_context_t, gis_render_sm_draw(), gis_render_sm_move(), gis_render_sm_rescale()




Предыдущий раздел: Описание API картографического фреймворка