Win32 compile fixes

This commit is contained in:
Daniel Collin 2012-11-08 14:43:46 +01:00
parent aeb99eb6ec
commit b2642100f5
7 changed files with 77 additions and 82 deletions

View File

@ -14,15 +14,6 @@
#include "../../sync/base.h" #include "../../sync/base.h"
#include "../../sync/data.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() static void drawStatus()
{ {
char temp[256]; char temp[256];
int row, idx;
const char *str = "---";
const struct sync_track* track;
struct sync_track** tracks = getTracks(); struct sync_track** tracks = getTracks();
int active_track = getActiveTrack();
if (!tracks) if (!tracks)
return; return;
int active_track = getActiveTrack(); track = tracks[active_track];
const struct sync_track* track = tracks[active_track]; row = s_editorData.trackViewInfo.rowPos;
int row = s_editorData.trackViewInfo.rowPos; idx = key_idx_floor(track, row);
int idx = key_idx_floor(track, row);
const char *str = "---";
if (idx >= 0) if (idx >= 0)
{ {
switch (track->keys[idx].type) switch (track->keys[idx].type)
@ -243,21 +236,22 @@ bool Editor_keyDown(int key, int modifiers)
is_editing = true; is_editing = true;
} }
s_editBuffer[strlen(s_editBuffer)] = key; s_editBuffer[strlen(s_editBuffer)] = (char)key;
s_editorData.trackData.editText = s_editBuffer; s_editorData.trackData.editText = s_editBuffer;
return true; return true;
} }
else if (is_editing) else if (is_editing)
{ {
const char* track_name;
struct track_key key; struct track_key key;
struct sync_track* track = tracks[active_track];
key.row = row_pos; key.row = row_pos;
key.value = atof(s_editBuffer); key.value = (float)atof(s_editBuffer);
key.type = 0; key.type = 0;
struct sync_track* track = tracks[active_track]; track_name = track->name;
const char* track_name = track->name;
sync_set_key(track, &key); sync_set_key(track, &key);
@ -271,6 +265,7 @@ bool Editor_keyDown(int key, int modifiers)
if (key == 'i') if (key == 'i')
{ {
struct track_key newKey;
struct sync_track* track = tracks[active_track]; struct sync_track* track = tracks[active_track];
int row = s_editorData.trackViewInfo.rowPos; int row = s_editorData.trackViewInfo.rowPos;
@ -279,7 +274,7 @@ bool Editor_keyDown(int key, int modifiers)
return false; return false;
// copy and modify // copy and modify
struct track_key newKey = track->keys[idx]; newKey = track->keys[idx];
newKey.type = ((newKey.type + 1) % KEY_TYPE_COUNT); newKey.type = ((newKey.type + 1) % KEY_TYPE_COUNT);
sync_set_key(track, &newKey); sync_set_key(track, &newKey);

View File

@ -66,7 +66,9 @@
* Do we have threading support? * Do we have threading support?
*/ */
#if defined(__APPLE__)
#define HAVE_PTHREAD_H 1 #define HAVE_PTHREAD_H 1
#endif
/* /*

View File

@ -126,12 +126,13 @@ static bool setBlocking(int sock, bool blocking)
bool RemoteConnection_createListner() bool RemoteConnection_createListner()
{ {
struct sockaddr_in sin;
s_serverSocket = socket(AF_INET, SOCK_STREAM, 0); s_serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (s_serverSocket == INVALID_SOCKET) if (s_serverSocket == INVALID_SOCKET)
return false; return false;
struct sockaddr_in sin;
memset(&sin, 0, sizeof sin); memset(&sin, 0, sizeof sin);
sin.sin_family = AF_INET; sin.sin_family = AF_INET;

View File

@ -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) 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); uint32_t color = Emgui_color32(40, 40, 40, 255);
Emgui_drawBorder(color, color, startX, startY - 20, 160, 600); 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) if (track)
Emgui_drawText(track->name, startX + 2, startY + 2, Emgui_color32(0xff, 0xff, 0xff, 0xff)); 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) 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) void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData)
{ {
struct sync_data* syncData = &trackData->syncData; struct sync_data* syncData = &trackData->syncData;
const int sel_track = trackData->activeTrack; 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 // 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); printRowNumbers(2, 42, 40, start_pos + viewInfo->rowPos, font_size, 8);
if (syncData->num_tracks == 0) if (syncData->num_tracks == 0)
@ -154,26 +138,21 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData)
renderChannel(0, 40 + (i * 64), 42, renderChannel(0, 40 + (i * 64), 42,
(start_pos + viewInfo->rowPos), (start_pos + viewInfo->rowPos),
(start_pos + viewInfo->rowPos + 40)); (start_pos + viewInfo->rowPos + 40));
uint32_t color = Emgui_color32(127, 127, 127, 56); Emgui_fill(Emgui_color32(127, 127, 127, 56), 0, 257, 800, font_size + 2);
Emgui_fill(color, 0, 257, 800, font_size + 2);
return; 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) if (num_tracks > max_render_tracks)
num_tracks = max_render_tracks; num_tracks = max_render_tracks;
int start_track = 0;
if (sel_track > 3) if (sel_track > 3)
start_track = sel_track - 3; start_track = sel_track - 3;
int x_pos = 40; end_track = emini(start_track + num_tracks, syncData->num_tracks);
const int end_track = min(start_track + num_tracks, syncData->num_tracks);
for (i = start_track; i < end_track; ++i) for (i = start_track; i < end_track; ++i)
{ {
@ -192,8 +171,6 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData)
x_pos += 160; x_pos += 160;
} }
uint32_t color = Emgui_color32(127, 127, 127, 56);
Emgui_fill(color, 0, 257, 800, font_size + 3); Emgui_fill(color, 0, 257, 800, font_size + 3);
} }

View File

@ -11,7 +11,8 @@
static void parseXml(mxml_node_t* rootNode, TrackData* trackData) 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; //struct sync_track** tracks = trackData->syncData.tracks;
mxml_node_t* node = rootNode; 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* value = mxmlElementGetAttr(node, "value");
const char* interpolation = mxmlElementGetAttr(node, "interpolation"); const char* interpolation = mxmlElementGetAttr(node, "interpolation");
struct track_key k;
k.row = atoi(row); k.row = atoi(row);
k.value = (float)(atof(value)); k.value = (float)(atof(value));
k.type = (atoi(interpolation)); k.type = (atoi(interpolation));
int is_key = is_key_frame(track, k.row); is_key = is_key_frame(track, k.row);
assert(!is_key); assert(!is_key);
sync_set_key(track, &k); sync_set_key(track, &k);
@ -134,6 +134,8 @@ int LoadSave_saveRocketXML(const char* path, TrackData* trackData)
{ {
mxml_node_t* xml; mxml_node_t* xml;
mxml_node_t* tracks; mxml_node_t* tracks;
FILE* fp;
size_t p;
struct sync_data* sync_data = &trackData->syncData; 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 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"); mxml_node_t* track = mxmlNewElement(tracks, "track");
mxmlElementSetAttr(track, "name", t->name); 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 temp0[256];
char temp1[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); mxmlSaveFile(xml, fp, MXML_NO_CALLBACK);
fclose(fp); fclose(fp);

View File

@ -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 { Build {
Units = "units.lua", Units = "units.lua",
@ -5,20 +30,7 @@ Build {
SyntaxExtensions = { "tundra.syntax.glob", "tundra.syntax.osx-bundle" }, SyntaxExtensions = { "tundra.syntax.glob", "tundra.syntax.osx-bundle" },
Configs = { Configs = {
{ Config { Name = "macosx-clang", DefaultOnHost = "macosx", Inherit = macosx, Tools = { "clang-osx" } },
Name = "macosx-clang", Config { Name = "win32-msvc", DefaultOnHost = { "windows" }, Inherit = win32, Tools = { "msvc" } },
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" },
},
},
},
}, },
} }

View File

@ -96,7 +96,7 @@ Program {
Sources = { Sources = {
FGlob { FGlob {
Dir = "ogl_editor/src", Dir = "ogl_editor/src",
Extensions = { ".c", ".m" }, Extensions = { ".c" },
Filters = { Filters = {
{ Pattern = "macosx"; Config = "macosx-*-*" }, { Pattern = "macosx"; Config = "macosx-*-*" },
{ Pattern = "windows"; Config = { "win32-*-*", "win64-*-*" } }, { Pattern = "windows"; Config = { "win32-*-*", "win64-*-*" } },
@ -105,8 +105,6 @@ Program {
}, },
} }
Default "editor"
local rocketBundle = OsxBundle local rocketBundle = OsxBundle
{ {
Depends = { "editor" }, 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