Интересно почитать… Блог в котором есть много интересной информации…

23 ноября 2015

Собираем OpenCPN под VS2013 Win32

Категория: программирование — dmitriano @ 1:06

Делаем всё по инструкции, ставим на винду Cmake, POedit, нужен ли NSIS непонятно, скачиваем и стоим wxWidgets-3.0.2 (обе конфигурации debug и release), затем прописываем переменные окружения:

переменные окружения

берем OpenCPN из Git и запускаем CMake GUI через батник с прописанными путями:

PATH=%PATH%;D:\Lib\wxWidgets-3.0.2;C:\Program Files (x86)\Poedit\GettextTools\bin

C:

cd "C:\Program Files (x86)\CMake"

"C:\Program Files (x86)\CMake\bin\cmake-gui.exe"

CMake GUI

открываем и стоим OpenCPN\build\OpenCPN.sln в VS2013

Запускаем под дебагером с ключом /p, что значит portable:

image

после первого запуска надо прописать OpenGL=1 в файле opencpn.ini, в этом случае в коде будет установлен флажок g_bopengl и для отрисовки карты будет вызываться следующая функция:

void glChartCanvas::OnPaint( wxPaintEvent &event )
{
    wxPaintDC dc( this );

    Show( g_bopengl );

    ...

    //      Recursion test, sometimes seen on GTK systems when wxBusyCursor is activated
    if( m_in_glpaint ) return;
    m_in_glpaint++;
    Render();
    m_in_glpaint--;
}

в коде в 8-ми файлах есть условная компиляция по дефайну ocpnUSE_GLES (судя по всему, они с этим дефайном собирают проект под Android):

#ifndef ocpnUSE_GLES // linestipple is emulated poorly
    if( !strncmp( str, "DASH", 4 ) ) {
        glLineStipple( 1, 0x3F3F );
        glEnable( GL_LINE_STIPPLE );
    }
    else if( !strncmp( str, "DOTT", 4 ) ) {
        glLineStipple( 1, 0x3333 );
        glEnable( GL_LINE_STIPPLE );
    }
    else
        glDisable( GL_LINE_STIPPLE );
#endif    

этот дефайн по умолчанию не установлен, его надо где-то включить для всего solution:

главное окно приложения выглядит следующим образом:

OpenCPN

Полезные ссылки:

Линии 3D/Шарики 3D

Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

SlogPost.ru