M dev/include/octaspire/dern/octaspire_dern_config.h => dev/include/octaspire/dern/octaspire_dern_config.h +1 -1
@@ 18,7 18,7 @@ limitations under the License.
#define OCTASPIRE_DERN_CONFIG_H
#define OCTASPIRE_DERN_CONFIG_VERSION_MAJOR "0"
-#define OCTASPIRE_DERN_CONFIG_VERSION_MINOR "482"
+#define OCTASPIRE_DERN_CONFIG_VERSION_MINOR "483"
#define OCTASPIRE_DERN_CONFIG_VERSION_PATCH "0"
#define OCTASPIRE_DERN_CONFIG_VERSION_STR "Octaspire Dern version " \
M release/how-to-build/windows-msvc.py => release/how-to-build/windows-msvc.py +49 -6
@@ 36,6 36,11 @@ import urllib
import zipfile
###############################################################################
+# Global variables #
+###############################################################################
+summary = []
+
+###############################################################################
# Helper functions #
###############################################################################
def octaspire_copydir(p):
@@ 73,7 78,7 @@ def octaspire_depend_sourceforge(url, f, dirName, copyFromPath):
octaspire_copydir(copyFromPath)
print('')
-def octaspire_build(resultName, desc, buildCommand, *runExamples):
+def octaspire_build(resultName, desc, buildCommand, isExample, *runExamples):
print('- Building {}\n\t {}'.format(resultName, desc))
print('-----------------------------------------------------')
os.system(buildCommand)
@@ 81,8 86,28 @@ def octaspire_build(resultName, desc, buildCommand, *runExamples):
if not os.path.isfile(resultName):
print('\t ERROR {} FAILED TO BUILD'.format(resultName))
sys.exit(1)
+ examples = ''
for a in runExamples:
print(' Run or test like this: {}'.format(a))
+ examples += '\n\t{}'.format(a)
+ print('')
+ ansiColor = '\033[1;32;31m'
+ if isExample:
+ ansiColor = '\033[1;32;32m'
+ summary.append('{}{}\033[0m {}'.format(ansiColor, desc, examples))
+
+def octaspire_game(resultName, *runExamples):
+ examples = ''
+ for a in runExamples:
+ examples += '\n\t{}'.format(a)
+ ansiColor = '\033[1;32;33m'
+ summary.append('{}{}\033[0m {}'.format(ansiColor, resultName, examples))
+
+def octaspire_summary():
+ print('\nSUMMARY OF \033[1;32;31mTOOLS\033[0m, \033[1;32;32mEXAMPLES\033[0m AND \033[1;32;33mGAMES\033[0m AND HOW TO RUN THEM')
+ print('========================================================')
+ for i in summary:
+ print(i)
print('')
def octaspire_create_lib_file(dllFileName):
@@ 156,9 181,6 @@ def main(argv):
'SDL2_ttf-2.0.14-win32-x86.zip',
'SDL2_ttf-2.0.14-win32-x86',
'')
- octaspire_create_lib_file('SDL2_image.dll')
- octaspire_create_lib_file('SDL2_mixer.dll')
- octaspire_create_lib_file('SDL2_ttf.dll')
# Get dependency: SDL2_ttf headers
octaspire_depend(
'https://www.libsdl.org/projects/SDL_ttf/release/',
@@ 189,6 211,10 @@ def main(argv):
'SDL2_image-2.0.4.zip',
'SDL2_image-2.0.4',
'')
+ # Generate some required .lib files for few dependencies
+ octaspire_create_lib_file('SDL2_image.dll')
+ octaspire_create_lib_file('SDL2_mixer.dll')
+ octaspire_create_lib_file('SDL2_ttf.dll')
###########################################################################
# Build programs, plugins and examples #
###########################################################################
@@ 197,36 223,42 @@ def main(argv):
'octaspire-dern-unit-test-runner.exe',
'stand alone unit test runner',
cl + cflags + '/DOCTASPIRE_DERN_AMALGAMATED_UNIT_TEST_IMPLEMENTATION octaspire-dern-amalgamated.c /link /out:octaspire-dern-unit-test-runner.exe',
+ False,
'octaspire-dern-unit-test-runner.exe')
# Build interactive Dern REPL
octaspire_build(
'octaspire-dern-repl.exe',
'interactive Dern REPL',
cl + cflags + '/DOCTASPIRE_DERN_AMALGAMATED_REPL_IMPLEMENTATION octaspire-dern-amalgamated.c /link /out:octaspire-dern-repl.exe',
+ False,
'octaspire-dern-repl.exe')
# Build Dern ncurses plugin
octaspire_build(
'libdern_ncurses.dll',
'Dern ncurses plugin (uses pdcurses)',
cl + cflags + '/I. /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\dern_ncurses.c /link pdcurses.lib /out:libdern_ncurses.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-ncurses-example.dern')
# Build Dern SDL2 plugin
octaspire_build(
'libdern_sdl2.dll',
'Dern SDL2 plugin (uses SDL2, SDL2_image, SDL2_mixer and SDL2_ttf)',
cl + cflags + '/I. /ISDL2-2.0.9\include /ISDL2_image-2.0.4 /ISDL2_mixer-2.0.4 /ISDL2_ttf-2.0.14 /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_OPENGL2_LIBRARY /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_SDL_IMAGE_LIBRARY /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_SDL_MIXER_LIBRARY /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_SDL_TTF_LIBRARY /Dmain=SDL_main /LD plugins\dern_sdl2.c /link SDL2.lib SDL2_mixer.lib SDL2_ttf.lib SDL2_image.lib opengl32.lib glu32.lib /out:libdern_sdl2.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-sdl2-example.dern')
# Build Dern Nuklear plugin
octaspire_build(
'libdern_nuklear.dll',
'Dern Nuklear plugin',
cl + cflags + '/I. /Iplugins/external/nuklear /ISDL2-2.0.9\include /ISDL2_image-2.0.4 /ISDL2_mixer-2.0.4 /ISDL2_ttf-2.0.14 /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_OPENGL2_LIBRARY /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_SDL_IMAGE_LIBRARY /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_SDL_MIXER_LIBRARY /DOCTASPIRE_DERN_SDL2_PLUGIN_USE_SDL_TTF_LIBRARY /LD plugins\dern_nuklear.c /link SDL2.lib SDL2_mixer.lib SDL2_ttf.lib SDL2_image.lib opengl32.lib glu32.lib /out:libdern_nuklear.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-nuklear-example.dern')
# Build Dern socket plugin
octaspire_build(
'libdern_socket.dll',
'Dern socket plugin',
cl + cflags + '/I. /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\dern_socket.c /link ws2_32.lib /out:libdern_socket.dll',
+ True,
'octaspire-dern-repl.exe -I examples examples\irc-client-ncurses.dern',
'octaspire-dern-repl.exe -I examples examples\irc-client-nuklear.dern')
# Build Dern easing plugin
@@ 234,18 266,21 @@ def main(argv):
'libdern_easing.dll',
'Dern easing plugin',
cl + cflags + '/I. /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\dern_easing.c /link /out:libdern_easing.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-easing-example.dern')
# Build Dern animation plugin
octaspire_build(
'libdern_animation.dll',
'Dern animation plugin',
cl + cflags + '/I. /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\dern_animation.c /link /out:libdern_animation.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-animation-example.dern')
# Build Dern dir plugin
octaspire_build(
'libdern_dir.dll',
'Dern directory plugin',
cl + cflags + '/W2 /I. /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\dern_dir.c /link /out:libdern_dir.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-dir-example.dern')
print('Building Chipmunk library...')
os.system(cl + cflagsChipmunk + '/Iplugins/external/chipmunk/include /Iplugins/external/chipmunk/include/chipmunk /LD plugins/external/chipmunk/src/*.c /link /out:libchipmunk.dll')
@@ 254,27 289,35 @@ def main(argv):
'libdern_chipmunk.dll',
'Dern chipmunk plugin',
cl + cflags + '/I. /Iplugins/external/chipmunk/include/ /Iplugins/external/chipmunk/include/chipmunk /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\dern_chipmunk.c plugins\external\sqlite3\sqlite3.c /link chipmunk.lib /out:libdern_chipmunk.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-chipmunk-example.dern')
- #print('Compiling SQLite3...')
- #os.system(cl + cflags + '/Iplugins/external/sqlite3 plugins/external/sqlite3/sqlite3.c')
# Build Dern SQLite3 plugin
octaspire_build(
'libdern_sqlite3.dll',
'Dern SQLite3 plugin',
cl + cflags + '/I. /Iplugins/external/sqlite3/ /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD plugins\external\sqlite3\sqlite3.c plugins\dern_sqlite3.c /link /out:libdern_sqlite3.dll',
+ True,
'octaspire-dern-repl.exe examples\dern-sqlite3-example.dern')
# Build embedding example
octaspire_build(
'embedding-example.exe',
'embedding example',
cl + cflags + '/I. /DOCTASPIRE_DERN_CONFIG_BINARY_PLUGINS examples\embedding-example.c /link /out:embedding-example.exe',
+ True,
'embedding-example.exe')
# Build binary library example
octaspire_build(
'libmylib.dll',
'binary library example',
cl + cflags + '/I. /DOCTASPIRE_DERN_AMALGAMATED_IMPLEMENTATION /LD examples\mylib.c /link /out:libmylib.dll',
+ True,
'octaspire-dern-repl.exe examples\use-mylib.dern')
+ # Add information about games into summary
+ octaspire_game('octaspire-maze', 'octaspire-dern-repl.exe games\octaspire-maze.dern')
+ octaspire_game('octaspire-lightcube', 'octaspire-dern-repl.exe games\octaspire-lightcube.dern')
+ octaspire_game('octaspire-bounce', 'octaspire-dern-repl.exe games\octaspire-bounce.dern')
+ # Print summary of runnable examples and how to run them
+ octaspire_summary()
if __name__ == '__main__':
main(sys.argv[1:])
M release/octaspire-dern-amalgamated.c => release/octaspire-dern-amalgamated.c +1 -1
@@ 26336,7 26336,7 @@ limitations under the License.
#define OCTASPIRE_DERN_CONFIG_H
#define OCTASPIRE_DERN_CONFIG_VERSION_MAJOR "0"
-#define OCTASPIRE_DERN_CONFIG_VERSION_MINOR "482"
+#define OCTASPIRE_DERN_CONFIG_VERSION_MINOR "483"
#define OCTASPIRE_DERN_CONFIG_VERSION_PATCH "0"
#define OCTASPIRE_DERN_CONFIG_VERSION_STR "Octaspire Dern version " \
M release/plugins/dern_chipmunk.c => release/plugins/dern_chipmunk.c +2 -1
@@ 2618,7 2618,8 @@ octaspire_dern_value_t *dern_chipmunk_cpSpaceAddWildCardHandler(
}
cpCollisionType const collisionType =
- octaspire_dern_value_as_number_get_value(secondArg);
+ (cpCollisionType const)octaspire_dern_value_as_number_get_value(
+ secondArg);
// (Lambda) function for postSolve callback
M release/plugins/dern_nuklear.c => release/plugins/dern_nuklear.c +10 -10
@@ 835,7 835,7 @@ octaspire_dern_value_t *dern_nuklear_slider_int(
return numberOrErrorMin.unpushedError;
}
- int const minVal = numberOrErrorMin.number;
+ int const minVal = (int const)numberOrErrorMin.number;
// value
@@ 853,7 853,7 @@ octaspire_dern_value_t *dern_nuklear_slider_int(
return numberOrErrorValue.unpushedError;
}
- int valueVal = numberOrErrorValue.number;
+ int valueVal = (int)numberOrErrorValue.number;
// max
@@ 871,7 871,7 @@ octaspire_dern_value_t *dern_nuklear_slider_int(
return numberOrErrorMax.unpushedError;
}
- int const maxVal = numberOrErrorMax.number;
+ int const maxVal = (int const)numberOrErrorMax.number;
// step
@@ 889,7 889,7 @@ octaspire_dern_value_t *dern_nuklear_slider_int(
return numberOrErrorStep.unpushedError;
}
- int const stepVal = numberOrErrorStep.number;
+ int const stepVal = (int const)numberOrErrorStep.number;
// Show the widget.
@@ 1307,7 1307,7 @@ octaspire_dern_value_t *dern_nuklear_edit_string(
return numberOrError.unpushedError;
}
- int const len = numberOrError.number;
+ int const len = (int const)numberOrError.number;
if (len < 2)
{
@@ 1756,7 1756,7 @@ octaspire_dern_value_t *dern_nuklear_layout_row_dynamic(
return numberOrErrorNumColumns.unpushedError;
}
- int const columns = numberOrErrorNumColumns.number;
+ int const columns = (int const)numberOrErrorNumColumns.number;
nk_layout_row_dynamic(ctx, height, columns);
@@ 1855,7 1855,7 @@ octaspire_dern_value_t *dern_nuklear_layout_row_static(
return numberOrErrorItemWidth.unpushedError;
}
- int const item_width = numberOrErrorItemWidth.number;
+ int const item_width = (int const)numberOrErrorItemWidth.number;
// columns
@@ 1873,7 1873,7 @@ octaspire_dern_value_t *dern_nuklear_layout_row_static(
return numberOrErrorColumns.unpushedError;
}
- int const columns = numberOrErrorColumns.number;
+ int const columns = (int const)numberOrErrorColumns.number;
nk_layout_row_static(ctx, height, item_width, columns);
@@ 2001,7 2001,7 @@ octaspire_dern_value_t *dern_nuklear_layout_row(
return numberOrErrorColumns.unpushedError;
}
- int const columns = numberOrErrorColumns.number;
+ int const columns = (int const)numberOrErrorColumns.number;
if (columns <= 0)
{
@@ 2440,7 2440,7 @@ octaspire_dern_value_t *dern_nuklear_rgba(
return numberOrError.unpushedError;
}
- numbers[i] = numberOrError.number;
+ numbers[i] = (int)numberOrError.number;
}
struct nk_color *color = octaspire_allocator_malloc(
M release/plugins/dern_sdl2.c => release/plugins/dern_sdl2.c +7 -7
@@ 4357,7 4357,7 @@ octaspire_dern_value_t *dern_sdl2_glReadPixel(
octaspire_dern_value_helper_get_type_as_c_string(arg->typeTag));
}
- x = octaspire_dern_value_as_number_get_value(arg);
+ x = (int)octaspire_dern_value_as_number_get_value(arg);
// y
arg = octaspire_dern_value_as_vector_get_element_at_const(arguments, 1);
@@ 4376,7 4376,7 @@ octaspire_dern_value_t *dern_sdl2_glReadPixel(
octaspire_dern_value_helper_get_type_as_c_string(arg->typeTag));
}
- y = octaspire_dern_value_as_number_get_value(arg);
+ y = (int)octaspire_dern_value_as_number_get_value(arg);
#ifdef OCTASPIRE_DERN_SDL2_PLUGIN_USE_OPENGL2_LIBRARY
glFlush();
@@ 4810,7 4810,7 @@ octaspire_dern_value_t *dern_sdl2_gl_screen_to_world(
mouseYinGL = viewport[3] - (GLint)(args[1]) - 1;
glReadPixels(
- args[0], // mouse x
+ (GLint)args[0], // mouse x
mouseYinGL, // mouse y
1, // width
1, // height
@@ 5057,7 5057,7 @@ octaspire_dern_value_t *dern_sdl2_glViewport(
octaspire_dern_value_helper_get_type_as_c_string(arg->typeTag));
}
- x = octaspire_dern_value_as_number_get_value(arg);
+ x = (int)octaspire_dern_value_as_number_get_value(arg);
// y
arg = octaspire_dern_value_as_vector_get_element_at_const(arguments, 1);
@@ 5076,7 5076,7 @@ octaspire_dern_value_t *dern_sdl2_glViewport(
octaspire_dern_value_helper_get_type_as_c_string(arg->typeTag));
}
- y = octaspire_dern_value_as_number_get_value(arg);
+ y = (int)octaspire_dern_value_as_number_get_value(arg);
// width
arg = octaspire_dern_value_as_vector_get_element_at_const(arguments, 2);
@@ 5095,7 5095,7 @@ octaspire_dern_value_t *dern_sdl2_glViewport(
octaspire_dern_value_helper_get_type_as_c_string(arg->typeTag));
}
- width = octaspire_dern_value_as_number_get_value(arg);
+ width = (size_t)octaspire_dern_value_as_number_get_value(arg);
// height
arg = octaspire_dern_value_as_vector_get_element_at_const(arguments, 3);
@@ 5114,7 5114,7 @@ octaspire_dern_value_t *dern_sdl2_glViewport(
octaspire_dern_value_helper_get_type_as_c_string(arg->typeTag));
}
- height = octaspire_dern_value_as_number_get_value(arg);
+ height = (size_t)octaspire_dern_value_as_number_get_value(arg);
#ifdef OCTASPIRE_DERN_SDL2_PLUGIN_USE_OPENGL2_LIBRARY
glViewport(x, y, width, height);
M release/plugins/external/chipmunk/include/chipmunk/chipmunk.h => release/plugins/external/chipmunk/include/chipmunk/chipmunk.h +4 -1
@@ 1,3 1,6 @@
+//
+// Modified version by octaspire 2019.
+//
/* Copyright (c) 2013 Scott Lembcke and Howling Moon Software
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
@@ 149,7 152,7 @@ CP_EXPORT cpFloat cpMomentForSegment(cpFloat m, cpVect a, cpVect b, cpFloat radi
CP_EXPORT cpFloat cpAreaForSegment(cpVect a, cpVect b, cpFloat radius);
/// Calculate the moment of inertia for a solid polygon shape assuming it's center of gravity is at it's centroid. The offset is added to each vertex.
-CP_EXPORT cpFloat cpMomentForPoly(cpFloat m, int count, const cpVect *verts, cpVect offset, cpFloat radius);
+CP_EXPORT cpFloat cpMomentForPoly(cpFloat m, const int count, const cpVect *verts, cpVect offset, cpFloat r);
/// Calculate the signed area of a polygon. A Clockwise winding gives positive area.
/// This is probably backwards from what you expect, but matches Chipmunk's the winding for poly shapes.
M release/plugins/external/chipmunk/include/chipmunk/chipmunk_private.h => release/plugins/external/chipmunk/include/chipmunk/chipmunk_private.h +5 -2
@@ 1,3 1,6 @@
+//
+// Modified version by octaspire 2019.
+//
/* This is modified version, NOT the original. Modifications are
* copyright 2018 by octaspire and are released under the same license
* as the original.
@@ 54,7 57,7 @@ void cpArrayFreeEach(cpArray *arr, void (freeFunc)(void*));
//MARK: cpHashSet
-typedef cpBool (*cpHashSetEqlFunc)(void *ptr, void *elt);
+typedef cpBool (*cpHashSetEqlFunc)(void const * const ptr, void const * const elt);
typedef void *(*cpHashSetTransFunc)(void *ptr, void *data);
cpHashSet *cpHashSetNew(int size, cpHashSetEqlFunc eqlFunc);
@@ 64,7 67,7 @@ void cpHashSetFree(cpHashSet *set);
int cpHashSetCount(cpHashSet *set);
void *cpHashSetInsert(cpHashSet *set, cpHashValue hash, void *ptr, cpHashSetTransFunc trans, void *data);
-void *cpHashSetRemove(cpHashSet *set, cpHashValue hash, void *ptr);
+void *cpHashSetRemove(cpHashSet *set, cpHashValue hash, void const * const ptr);
void *cpHashSetFind(cpHashSet *set, cpHashValue hash, void *ptr);
typedef void (*cpHashSetIteratorFunc)(void *elt, void *data);
M release/plugins/external/chipmunk/src/cpHashSet.c => release/plugins/external/chipmunk/src/cpHashSet.c +4 -1
@@ 1,3 1,6 @@
+//
+// Modified version by octaspire 2019.
+//
/* Copyright (c) 2013 Scott Lembcke and Howling Moon Software
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
@@ 176,7 179,7 @@ cpHashSetInsert(cpHashSet *set, cpHashValue hash, void *ptr, cpHashSetTransFunc
}
void *
-cpHashSetRemove(cpHashSet *set, cpHashValue hash, void *ptr)
+cpHashSetRemove(cpHashSet *set, cpHashValue hash, void const * const ptr)
{
cpHashValue idx = hash%set->size;