30#include "s57registrar_mgr.h"
45 g_csv_locn = g_Platform->GetSharedDataDir();
46 g_csv_locn.Append(
"s57data");
50 appendOSDirSlash(&g_csv_locn);
51 g_csv_locn.Append(
"s57data");
56 if (g_SENCPrefix.IsEmpty()) {
58 appendOSDirSlash(&g_SENCPrefix);
59 g_SENCPrefix.Append(
"SENC");
63 wxFileName f(g_SENCPrefix);
65 g_SENCPrefix = f.GetFullPath();
67 g_SENCPrefix =
"SENC";
73 bool b_force_legacy =
false;
75 if (g_UserPresLibData.IsEmpty()) {
76 plib_data = g_csv_locn;
77 appendOSDirSlash(&plib_data);
78 plib_data.Append(
"S52RAZDS.RLE");
80 plib_data = g_UserPresLibData;
81 b_force_legacy =
true;
84 ps52plib =
new s52plib(plib_data, b_force_legacy);
99 if (!ps52plib->m_bOK) {
102 wxStandardPaths &std_path = g_Platform->GetStdPaths();
104 wxString look_data_dir;
105 look_data_dir.Append(std_path.GetUserDataDir());
106 appendOSDirSlash(&look_data_dir);
107 wxString tentative_SData_Locn = look_data_dir;
108 look_data_dir.Append(
"s57data");
110 plib_data = look_data_dir;
111 appendOSDirSlash(&plib_data);
112 plib_data.Append(
"S52RAZDS.RLE");
114 wxLogMessage(
"Looking for s57data in " + look_data_dir);
115 ps52plib =
new s52plib(plib_data);
117 if (ps52plib->m_bOK) {
118 g_csv_locn = look_data_dir;
127 if (!ps52plib->m_bOK) {
130 wxString look_data_dir;
131 look_data_dir = g_Platform->GetSharedDataDir();
132 look_data_dir.Append(
"s57data");
134 plib_data = look_data_dir;
135 appendOSDirSlash(&plib_data);
136 plib_data.Append(
"S52RAZDS.RLE");
138 wxLogMessage(
"Looking for s57data in " + look_data_dir);
139 ps52plib =
new s52plib(plib_data);
141 if (ps52plib->m_bOK) g_csv_locn = look_data_dir;
144 if (ps52plib->m_bOK) {
145 wxLogMessage(
"Using s57data in " + g_csv_locn);
147 new s57RegistrarMgr(g_csv_locn, g_Platform->GetLogFilePtr());
152 for (
unsigned int iPtr = 0; iPtr < ps52plib->pOBJLArray->GetCount();
154 OBJLElement *pOLE = (OBJLElement *)(ps52plib->pOBJLArray->Item(iPtr));
155 if (!strncmp(pOLE->OBJLName,
"DEPARE", 6)) pOLE->nViz = 1;
156 if (!strncmp(pOLE->OBJLName,
"LNDARE", 6)) pOLE->nViz = 1;
157 if (!strncmp(pOLE->OBJLName,
"COALNE", 6)) pOLE->nViz = 1;
161 ps52plib->SetPLIBColorScheme(global_color_scheme, ChartCtxFactory());
163 if (wxTheApp->GetTopWindow()) {
168 ps52plib->SetDIPFactor(dip_factor);
173 ps52plib->SetScaleFactorExp(
174 g_Platform->GetChartScaleFactorExp(g_ChartScaleFactor));
175 ps52plib->SetScaleFactorZoomMod(g_chart_zoom_modifier_vector);
182 wxString renderer = wxString(GL_Caps->Renderer.c_str());
183 ps52plib->SetGLRendererString(renderer);
186 ps52plib->SetGLOptions(
187 glChartCanvas::s_b_useStencil, glChartCanvas::s_b_useStencilAP,
188 glChartCanvas::s_b_useScissorTest, glChartCanvas::s_b_useFBO,
189 g_b_EnableVBO, g_texture_rectangle_format, 1, 1);
194 wxLogMessage(
" S52PLIB Initialization failed, disabling Vector charts.");
Wrapper for creating a ChartCtx based on global vars.
Manager for S57 chart SENC creation threads.
Global variables reflecting command line options and arguments.
std::vector< OCPN_MonitorInfo > g_monitor_info
Information about the monitors connected to the system.
size_t g_current_monitor
Current monitor displaying main application frame.
Miscellaneous globals primarely used by gui layer, not persisted in configuration file.
MyConfig * pConfig
Global instance.
s57RegistrarMgr * m_pRegistrarMan
Global instance.
double OCPN_GetDisplayContentScaleFactor()
Gets content scaling factor for current display.
SENCThreadManager * g_SencThreadManager
Global instance.