Блог в котором есть много интересной информации…
Делаем всё по инструкции, ставим на винду 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"
открываем и стоим OpenCPN\build\OpenCPN.sln в VS2013
Запускаем под дебагером с ключом /p, что значит portable:
после первого запуска надо прописать 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:
главное окно приложения выглядит следующим образом:
Полезные ссылки: