From b2642100f5b05c478109513b778da155197dc8ba Mon Sep 17 00:00:00 2001 From: Daniel Collin Date: Thu, 8 Nov 2012 14:43:46 +0100 Subject: [PATCH] Win32 compile fixes --- ogl_editor/src/Editor.c | 33 ++++++++++------------- ogl_editor/src/External/mxml/config.h | 2 ++ ogl_editor/src/RemoteConnection.c | 3 ++- ogl_editor/src/TrackView.c | 49 ++++++++++------------------------- ogl_editor/src/loadsave.c | 17 +++++++----- tundra.lua | 42 +++++++++++++++++++----------- units.lua | 13 +++++++--- 7 files changed, 77 insertions(+), 82 deletions(-) diff --git a/ogl_editor/src/Editor.c b/ogl_editor/src/Editor.c index 7b79bb9..b676cce 100644 --- a/ogl_editor/src/Editor.c +++ b/ogl_editor/src/Editor.c @@ -14,15 +14,6 @@ #include "../../sync/base.h" #include "../../sync/data.h" -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#if defined(EMGUI_MACOSX) -#define FONT_PATH "/Library/Fonts/" -#elif defined(EMGUI_WINDOWS) -#define FONT_PATH "C:\\Windows\\Fonts\\" -#else -#error "Unsupported platform" -#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -99,16 +90,18 @@ void Editor_init() static void drawStatus() { char temp[256]; + int row, idx; + const char *str = "---"; + const struct sync_track* track; struct sync_track** tracks = getTracks(); + int active_track = getActiveTrack(); if (!tracks) return; - int active_track = getActiveTrack(); - const struct sync_track* track = tracks[active_track]; - int row = s_editorData.trackViewInfo.rowPos; - int idx = key_idx_floor(track, row); - const char *str = "---"; + track = tracks[active_track]; + row = s_editorData.trackViewInfo.rowPos; + idx = key_idx_floor(track, row); if (idx >= 0) { switch (track->keys[idx].type) @@ -243,21 +236,22 @@ bool Editor_keyDown(int key, int modifiers) is_editing = true; } - s_editBuffer[strlen(s_editBuffer)] = key; + s_editBuffer[strlen(s_editBuffer)] = (char)key; s_editorData.trackData.editText = s_editBuffer; return true; } else if (is_editing) { + const char* track_name; struct track_key key; + struct sync_track* track = tracks[active_track]; key.row = row_pos; - key.value = atof(s_editBuffer); + key.value = (float)atof(s_editBuffer); key.type = 0; - struct sync_track* track = tracks[active_track]; - const char* track_name = track->name; + track_name = track->name; sync_set_key(track, &key); @@ -271,6 +265,7 @@ bool Editor_keyDown(int key, int modifiers) if (key == 'i') { + struct track_key newKey; struct sync_track* track = tracks[active_track]; int row = s_editorData.trackViewInfo.rowPos; @@ -279,7 +274,7 @@ bool Editor_keyDown(int key, int modifiers) return false; // copy and modify - struct track_key newKey = track->keys[idx]; + newKey = track->keys[idx]; newKey.type = ((newKey.type + 1) % KEY_TYPE_COUNT); sync_set_key(track, &newKey); diff --git a/ogl_editor/src/External/mxml/config.h b/ogl_editor/src/External/mxml/config.h index 1f59ba3..9c3df99 100644 --- a/ogl_editor/src/External/mxml/config.h +++ b/ogl_editor/src/External/mxml/config.h @@ -66,7 +66,9 @@ * Do we have threading support? */ +#if defined(__APPLE__) #define HAVE_PTHREAD_H 1 +#endif /* diff --git a/ogl_editor/src/RemoteConnection.c b/ogl_editor/src/RemoteConnection.c index 09c63b9..3f97f6f 100644 --- a/ogl_editor/src/RemoteConnection.c +++ b/ogl_editor/src/RemoteConnection.c @@ -126,12 +126,13 @@ static bool setBlocking(int sock, bool blocking) bool RemoteConnection_createListner() { + struct sockaddr_in sin; + s_serverSocket = socket(AF_INET, SOCK_STREAM, 0); if (s_serverSocket == INVALID_SOCKET) return false; - struct sockaddr_in sin; memset(&sin, 0, sizeof sin); sin.sin_family = AF_INET; diff --git a/ogl_editor/src/TrackView.c b/ogl_editor/src/TrackView.c index f465fd9..0a6dc29 100644 --- a/ogl_editor/src/TrackView.c +++ b/ogl_editor/src/TrackView.c @@ -50,7 +50,7 @@ static void printRowNumbers(int x, int y, int rowCount, int rowOffset, int rowSp static void renderChannel(struct sync_track* track, int startX, int startY, int startPos, int endPos) { - uint x, y; + int x, y, y_offset; uint32_t color = Emgui_color32(40, 40, 40, 255); Emgui_drawBorder(color, color, startX, startY - 20, 160, 600); @@ -58,7 +58,7 @@ static void renderChannel(struct sync_track* track, int startX, int startY, int if (track) Emgui_drawText(track->name, startX + 2, startY + 2, Emgui_color32(0xff, 0xff, 0xff, 0xff)); - int y_offset = startY;// + font_size / 2; + y_offset = startY;// + font_size / 2; if (startPos < 0) { @@ -117,36 +117,20 @@ static void renderChannel(struct sync_track* track, int startX, int startY, int /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -int doMax(int a, int b) -{ - if (b >= a) - return b; - else - return a; -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -static inline int min(int a, int b) -{ - if (a < b) - return a; - else - return b; -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// - void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData) { struct sync_data* syncData = &trackData->syncData; const int sel_track = trackData->activeTrack; + uint32_t color = Emgui_color32(127, 127, 127, 56); + int num_tracks; + int max_render_tracks; + int start_track = 0; + int x_pos = 40; + int end_track = 0; + int i = 0; // TODO: Calculate how many channels we can draw given the width - uint i = 0; //, channel_count = 10; - printRowNumbers(2, 42, 40, start_pos + viewInfo->rowPos, font_size, 8); if (syncData->num_tracks == 0) @@ -154,26 +138,21 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData) renderChannel(0, 40 + (i * 64), 42, (start_pos + viewInfo->rowPos), (start_pos + viewInfo->rowPos + 40)); - uint32_t color = Emgui_color32(127, 127, 127, 56); - Emgui_fill(color, 0, 257, 800, font_size + 2); + Emgui_fill(Emgui_color32(127, 127, 127, 56), 0, 257, 800, font_size + 2); return; } - int num_tracks = syncData->num_tracks; + num_tracks = syncData->num_tracks; - int max_render_tracks = viewInfo->windowSizeX / 128; + max_render_tracks = viewInfo->windowSizeX / 128; if (num_tracks > max_render_tracks) num_tracks = max_render_tracks; - int start_track = 0; - if (sel_track > 3) start_track = sel_track - 3; - int x_pos = 40; - - const int end_track = min(start_track + num_tracks, syncData->num_tracks); + end_track = emini(start_track + num_tracks, syncData->num_tracks); for (i = start_track; i < end_track; ++i) { @@ -192,8 +171,6 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData) x_pos += 160; } - uint32_t color = Emgui_color32(127, 127, 127, 56); - Emgui_fill(color, 0, 257, 800, font_size + 3); } diff --git a/ogl_editor/src/loadsave.c b/ogl_editor/src/loadsave.c index 86df494..7413d24 100644 --- a/ogl_editor/src/loadsave.c +++ b/ogl_editor/src/loadsave.c @@ -11,7 +11,8 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) { - int track_index = 0; + struct track_key k; + int is_key, track_index = 0; //struct sync_track** tracks = trackData->syncData.tracks; mxml_node_t* node = rootNode; @@ -72,12 +73,11 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) const char* value = mxmlElementGetAttr(node, "value"); const char* interpolation = mxmlElementGetAttr(node, "interpolation"); - struct track_key k; k.row = atoi(row); k.value = (float)(atof(value)); k.type = (atoi(interpolation)); - int is_key = is_key_frame(track, k.row); + is_key = is_key_frame(track, k.row); assert(!is_key); sync_set_key(track, &k); @@ -134,6 +134,8 @@ int LoadSave_saveRocketXML(const char* path, TrackData* trackData) { mxml_node_t* xml; mxml_node_t* tracks; + FILE* fp; + size_t p; struct sync_data* sync_data = &trackData->syncData; @@ -142,13 +144,14 @@ int LoadSave_saveRocketXML(const char* path, TrackData* trackData) mxmlElementSetAttr(tracks, "rows", "1000000"); // TODO: Fix me - for (size_t i = 0; i < sync_data->num_tracks; ++i) + for (p = 0; p < sync_data->num_tracks; ++p) { - const struct sync_track* t = sync_data->tracks[i]; + int i; + const struct sync_track* t = sync_data->tracks[p]; mxml_node_t* track = mxmlNewElement(tracks, "track"); mxmlElementSetAttr(track, "name", t->name); - for (int i = 0; i < (int)t->num_keys; ++i) + for (i = 0; i < (int)t->num_keys; ++i) { char temp0[256]; char temp1[256]; @@ -174,7 +177,7 @@ int LoadSave_saveRocketXML(const char* path, TrackData* trackData) } } - FILE* fp = fopen(path, "wt"); + fp = fopen(path, "wt"); mxmlSaveFile(xml, fp, MXML_NO_CALLBACK); fclose(fp); diff --git a/tundra.lua b/tundra.lua index 785e61e..73fbeb4 100644 --- a/tundra.lua +++ b/tundra.lua @@ -1,3 +1,28 @@ +local macosx = { + Env = { + CPPDEFS = { "EMGUI_MACOSX" }, + CCOPTS = { + -- "-Weverything", + "-Wno-deprecated-declarations", -- TickCount issue no Mountain Lion (needs to be fixed) + "-I.", "-DMACOSX", "-Wall", + { "-O0", "-g"; Config = "*-*-debug" }, + { "-O3"; Config = "*-*-release" }, + }, + }, + + Frameworks = { "Cocoa" }, +} + +local win32 = { + Env = { + GENERATE_PDB = "1", + CCOPTS = { + "/W4", "/I.", "/DWIN32", "/D_CRT_SECURE_NO_WARNINGS", + { "/Od"; Config = "*-*-debug" }, + { "/O2"; Config = "*-*-release" }, + }, + }, +} Build { Units = "units.lua", @@ -5,20 +30,7 @@ Build { SyntaxExtensions = { "tundra.syntax.glob", "tundra.syntax.osx-bundle" }, Configs = { - { - Name = "macosx-clang", - DefaultOnHost = "macosx", - Tools = { "clang-osx" }, - Env = { - LIBPATH = { "/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64" }, - CPPDEFS = { "SDLROCKET_MACOSX" }, - CCOPTS = { - { "-g", "-O0" ; Config = { "*-gcc-debug", "*-clang-debug" } } - }, - CXXOPTS = { - { "-g", "-O0"; Config = "macosx-clang-debug" }, - }, - }, - }, + Config { Name = "macosx-clang", DefaultOnHost = "macosx", Inherit = macosx, Tools = { "clang-osx" } }, + Config { Name = "win32-msvc", DefaultOnHost = { "windows" }, Inherit = win32, Tools = { "msvc" } }, }, } diff --git a/units.lua b/units.lua index 8a0221a..859ad57 100644 --- a/units.lua +++ b/units.lua @@ -96,7 +96,7 @@ Program { Sources = { FGlob { Dir = "ogl_editor/src", - Extensions = { ".c", ".m" }, + Extensions = { ".c" }, Filters = { { Pattern = "macosx"; Config = "macosx-*-*" }, { Pattern = "windows"; Config = { "win32-*-*", "win64-*-*" } }, @@ -105,8 +105,6 @@ Program { }, } -Default "editor" - local rocketBundle = OsxBundle { Depends = { "editor" }, @@ -119,6 +117,13 @@ local rocketBundle = OsxBundle }, } -Default(rocketBundle) +local native = require('tundra.native') + +if native.platform == "macosx" then + Default(rocketBundle) +else + Default "editor" +end +