This is the development repo of Moai SDK.

Overview

Moai SDK is an embeddable cross-platform game development SDK written in C++ and scriptable in Lua. You can use Moai to write games or apps, or you can embed Moai in other programs. You can also use Moai as an overlay in your apps.

Multiple build systems are supported in this project. Sourcecode is kept in a common folder. There is a separate folder for each build system in the project root.

For IDE build systems (Xcode, Android Studio, Visual Studio), reference projects are provided. Cmake is also supported for Android and HTML5.

Third party libraries are included as git submodules (in some cases). The rest are vendored in. As a rule, we do not make any code changes to third party libraries. If functionality must be configured or replaced, we use a header injection pattern to do so.

A goal of the project is one-step build for the reference binaries. We don't want users to have to download and configure dependencies, or build parts of the SDK in advance. If you open the xcode/osx project (for example) and click 'build,' then Moai SDK should build for you in its entirety. This goal isn't always realized across all platforms, but it is something we strive for and if you want contribute build process improvements, please keep this goal in mind.

The project's principal developer (patrickmeehan) primarily works on OSX these days. As a result, the xcode/osx project is typically the most actively maintained. (For major releases, we update and test all projects.)

pito

pito is a command line toolbelt for automating some aspects of the project. pito is just a bootstrapper that use command line Moai to run lua scripts. To use pito, make sure moai-dev/pito is somewhere in your path. When you first run pito, if the Moai binary is missing, pito will attempt to build it.

At the Moai SDK project level, pito does very little beyond generating the HTML documentation for Moai's Lua interface and running some build scripts that can be used for CI. If you want to extend pito with other commands, type 'pito help' on the command line and you will see an explanation of how pito searches upward through the directory hierarchy for extensions.

Project Structure

  • 3rdparty - Submodules and third party source.
  • 3rdparty/contrib - Third party code snippets included in Moai.
  • android-ndk - Android JNI build project.
  • android-studio - Android Studio reference project.
  • bin - Moai executables, organized by OS type, generated by the various build systems.
  • cmake - Cmake build project.
  • docs - Legal notices and attribution images. Run 'pito make-lua-docs' to generate API reference.
  • legacy - Old stuff kept for reference. Unless you are a moai maintainer, you can ignore this.
  • lib - Moai static libraries, organized by OS type, generated by the various build systems.
  • pito - Moai command line utility.
  • samples - Moai SDK desktop and mobile samples.
  • src - All Moai SDK source code for Moai libraries and hosts.
  • test - This is a legacy, Lua-based test runner. Will be replaced by Google Test.
  • vs2019 - Visual Studio reference build system and reference project.
  • xcode - Xcode build system and reference projects.

Be sure to check for README files in these folders.

Reference Projects

Reference projects are the projects we use for day-to-day development work on Moai. We do not provide any kind of Moai project generator or IDE templates (though this functionality is somewhat provided by Cmake). The usage pattern for Moai is to copy one of the reference projects, manually update the paths to either the Moai source or libraries, and tailor it to your needs. This might sound onerous, but in our experience, if you know how to use the IDEs it should only take you a few minutes.

In the past, members of the community have provided extensions to pito that generate high quality IDE projects from project templates. We don't maintain these in moai-dev; the moai-community repository was created to hold them.

Hey, there aren't any docs! How do I use this thing?

Start with command line Moai. Add moai-dev/bin/ to your path then run some of the samples. We try to keep these up to date, but don't always have time (though for official releases of the SDK they all should work).

The samples are very, very simple. You will find Moai to be unopinionated and low-level. It is very much intended to be an SDK. You can piece it together however you want to make your game or app.

Once you get the hang of using Moai, start your project using a window size that uses a resolution/aspect ration you are comfortable with. You can adapt this later to handle multiple resolutions and aspect ratios. It is fine to prototype on desktop; mobile support is robust enough that you can port your work once you have something going.

How do I get help?

There's no official support for the project right now. Check the forums or see if you can get an invite to the Slack team.

If you have lots of money and want to hire someone to work on features for you or help you with your Moai project, you can try your luck by emailing 'moai-sdk' at fallguyconsulting.com.

Tips

  • For any kind of serious app, you will need to figure out how to handle transitions yourself (screen-to-screen or level-to-level). There is no official way of doing this.
  • Don't get too wrapped up in writing class systems of abstractions on top of Lua or Moai. At least not at first. A light touch is usually the way to go.
  • Moai does not attempt to hide or abstract low-level graphics concepts. To get the most out of Moai, you will need to understand coordinate systems and shaders. Game development is hard. Our goal is to provide convenience, flexibility and power, not to simplify.
  • You will eventually need to manage the garbage collector and hunt down objects that get left in scope. Don't worry: when you get there you will find that there are powerful mechanism in Lua and some memory analysis tools build in to Moai that will make this tractable.
  • Once you understand Moai viewports and scale settings, you will understand how you can write your app to use a device-independent coordinate system. For 2D games, you will be able to update your assets to use higher or lower resolutions without changing object dimensions. In our projects, we typically use at our highest targeted resolution for all assets and downsample for lower resolution devices.
  • Plan your letterboxing scheme early. You will want to decide up front if you will reposition UI elements or draw extra UI to avoid black bars.
  • Prototype on desktop, but test (a bunch) on device, well ahead of release.
Comments
  • Fix/lua gc

    Fix/lua gc

    I cleaned up the smart pointer semantics a bit and renamed some things to clarify intent. 'MOAILuaLocal' is now 'MOAILuaMemberRef.' I also got rid of MOAILuaObject's GetLocal, SetLocal, PushLocal in favor of the smart pointer. Now all of the Lua smart pointers have a similar interface and usage.

    Also also removed the MOAILuaRefTable implementation. Not sure why it was needed in the first place. Now the ref two tables are just a weak and strong table help in Lua's registry and managed with luaL_ref and luaL_unref.

    Most importantly, I fixed a crash that would happen when an object's Lua binding would get GC's but member refs remain. The actual crash was an assert () on mMemberTable triggered by a false positive when testing the validity of a member ref and attempting to push the member table.

    I've run our game with this and some of the samples, but haven't tested exhaustively. Would definitely appreciate extra eyes on this, particularly the move from MOAILuaRefTable to luaL_ref and luaL_unref.

    opened by patrickmeehan 32
  • Seebs/warning fixes

    Seebs/warning fixes

    This is a handful of fixes to remove warnings being generated by clang. I think at least a couple of these were serious bugs that could break code badly on some platforms (such as anything where size_t isn't the same size as unsigned int). Mostly just trying to reduce the spam so that warnings are actually significant.

    opened by seebs 22
  • issue when building on ubuntu

    issue when building on ubuntu

    Hey, Tried building on ubuntu 14.04 but failed with error checking types of args and return type for recvfrom... In file included from /usr/include/png.h:526:0, from /home/travis/build/moaiforge/moai-sdk/src/moai-sim/MOAIImage.cpp:7: /usr/include/pngconf.h:371:12: error: ‘pngconf’ does not name a type /usr/include/pngconf.h:372:12: error: ‘__dont’ does not name a type`

    Seen it also on some linux Travis builds.

    This PR tries to fix this, but I don;t think it's the best solution as I'm not too familiar with C/C++

    Sebi

    opened by sebi-hgdata 19
  • Feature dump Sep 23; revised Lua binding, SDL, misc

    Feature dump Sep 23; revised Lua binding, SDL, misc

    Sorry for the huge pull request. One of the challenges of the git workflow is that sometimes smaller pull requests on their own branches can't get merged in before I've taken back into my own development branch and continued work. It's not feasible for me to have a bunch of little feature branches waiting around - there are often inter-dependencies. So it's going to be monolithic pull requests more often the not.

    This one is going to break some stuff. Here's a quick rundown of the breaky parts:

    • I'm tired of *glut and moving to SDL. Decided to build SDL as a static lib which is supported on OSX but not so much on Windows. To that end I commented out a big chunk of SDL_stdlib.c. I'm sure there's a better solution through compiler settings and header substitution; I just didn't have time.
    • The new SDL host is minimal. I'll add more features as I need them. Hoping the community will fill in the rest.
    • Have not tried running the revised test runner host. Not sure if this was ever added to CI or used for anything.
    • I built Xcode OSX but didn't have time for the iOS sample project. Am hoping someone volunteers to fix it up.
    • I changed the naming scheme for the modules to clarify the initialization/finalization process. It used to be that 'app' initialization was implicit, but this led to asymmetry of calls in the host (even though it handled all cases). This bugged me, so I made it more explicit. Each module now has an app initialize/finalize and a context intitialize/finalize. (Didn't have time to do the mobile modules - just desktop/windows so far).
    • I've added some helper files for the 'official' Moai host modules. They are under the 'host-modules' folder. This is still a little half-baked, but the idea is to make some of the host tedium reusable and hide a lot of the ugly #ifdef's.

    Some important fixes/changes:

    • I did a lot of work on the Lua binding as it pertains to GC. Still not sure if we are out of the woods, but the intermittent crashes I was seeing in out game have gone away.
    • MOAISim now takes control of the GC when it starts running. So business as usual until the first sim loop, then collectgarbage gets replaces with a warning and MOAISim starts running the GC incrementally. This let me get rid of a bunch of release/retains in the dep graph and action tree update code.
    • The engine-to-Lua lifecycle was improved and now correctly provides a ref table to singleton classes so Lua objects created inside of constructors should now be exposed to Lua correctly.
    • I added a way to set a custom GC callback on Moai objects for debugging purposes (dangerous - use with care). Also added a flag on MOAILuaRuntime to log GC events.
    • The new build settings on Xcode for iOS and OSX did not respect the implementation of the VFS via injection of zl_replace.h. This has been fixed. In the process I had to break zlcore into two libraries as zl-vfs is not supposed to have zl_replace.h injected. This is pretty darn important as the VFS will silently fail without this change.
    • I added a flag to MOAIAction to disable its auto-stop on no children. The default keeps the original behavior.

    I am starting some new projects that are going to add features to Moai SDK. I know this pull request is a pain, but if we can get it integrated, fixed and building that will pave the way for what's to come. Thanks!

    opened by patrickmeehan 17
  • Merge of patricks pr787 (lua_gc fixes etc) and cmake mods (work towards 1.5?)

    Merge of patricks pr787 (lua_gc fixes etc) and cmake mods (work towards 1.5?)

    A shot at getting a stable 1.5

    • This is a combination of https://github.com/moai/moai-dev/pull/787 plus all the fixes needed to get it running again and all hosts building again across all platforms.

    • It includes the html5 host that has been used by a few people now and runs the full set of hanappe samples

    • It also includes updates for cmake build system to build ios, android, windows and html5 hosts.

    • This has minor breaking changes to the lua side (the garbage collection call is now ForceGC) but custom host modules will need modification to talk to the new aku module interface and lua_gc references

    • I have squashed the commits and split them into 2. 1 is all the new 3rdparty libs, the other is all the engine mods

    • glut hosts now use freeglut (except macosx)

    • this can be resubmitted as a full merge if wanted (no squash) but thought this would be easier since there were so many commits and files updated.

      NOTE: I didn't touch the included project files. I focused on CMake. So a little help updating the project files if you want to maintain their current structure, or I can just use cmake to generate new project files for each platform (except the java one)

    opened by halfnelson 16
  • ant/libmoai-build.sh requires these workarounds

    ant/libmoai-build.sh requires these workarounds

    Using lubuntu-14.10-desktop-amd64, Oracle JDK 1.7, both Android NDK r8e and r9d Downloaded the develop branch on 2015.04.08, unpacked renamed to moai-dev, environment is set up properly cd moai-dev/ant ./libmoai-build.sh throws multiple errors, all have workaround

    1. multiple references for AKUPluginsAppFinalize (and 3 others)
      • go to *\moai-dev\ant\libmoai\jni\src*
      • edit aku_plugins.cpp → comment out all functions (maybe this is not the best solution)
    2. undefined reference to eglGetProcAddress
      • edit the \moai-dev\ant\libmoai\jni\Android.mk
      • ensure line 24 is appended with -lEGL, resulting: LOCAL_LDLIBS := -llog -lGLESv1_CM -lGLESv2 -lEGL
    3. MOAIImage.cpp:1920: undefined reference to 'edtaa3' and undefined reference to 'computegradient'
      • edit the \moai-dev\ant\libmoai\modules\3rdparty-contrib.mk
      • add line: LOCAL_SRC_FILES += $(MOAI_SDK_HOME)/3rdparty/contrib/edtaa3func.c
    opened by mmontvai 15
  • Update iOS Xcode project

    Update iOS Xcode project

    Update the Xcode project to use the new "improved" method for including image resources.

    These changes include updates to how the app icon and launch resources are included in the project. These changes also reduce the compile time for subsequent builds to a few seconds if ccache is installed.

    • AppIcon is now in Images.xcassets
    • Launch icon is now in Images.xcassets
    • Now uses LaunchScreen.xib to reduce the amount of assets required by project to a single image
    • Introduced ccache to all libmoai targets as well as both the moai-ios and moai-ios-static projects. This reduces build times to a few seconds after the first build. You must have ccache installed to use this feature. If ccache is not found, it falls back to the default compiler.

    Lastly, I have set both projects to always require fullscreen and to hide the status bar. The supported orientations have also been set to portrait and both landscape orientations. Obviously these can be changed. I believe these settings seem reasonable, giving that the projects used by MOAI are primarily games.

    opened by PeqNP 14
  • It dramatically improves the performance of Android.

    It dramatically improves the performance of Android.

    I have dramatically improved the performance of Android host. I also improved the behavior of the keyboard.

    • Move GLThead the update process.
    • Fixed a bug of the keyboard.
    • Specify improvement of orientation
    • Improvement of indentation.
    Optimization Hosts 
    opened by makotok 13
  • add INHERIT_VISIBLE and ACTUAL_VISIBLE attr

    add INHERIT_VISIBLE and ACTUAL_VISIBLE attr

    In a parent/child scene, a node's visibility is determined by parent's visibility and its own visibility. ATTR_VISIBLE link always overwrites child node's visibile attribute, so it is not useful in this scene.

    There's an example in sample/test folder.

    Pull Request 
    opened by tommo 12
  • Free the newly allocated string, not the local buffer

    Free the newly allocated string, not the local buffer

    This code only happens when the newly formatted string is larger than the size of the local buffer (1024 bytes). I uncovered the issue when I did a very long print from lua code.

    opened by KJ4ERJ 11
  • Seebs/grid dev 3

    Seebs/grid dev 3

    Okay, this is another try at making a usable color/scale kind of grid.

    Step 1: Add an optional color argument to Draw() calls. Step 2: Implement it for a couple of likely draw types. Step 3: Move the logic for DrawGrid() from MOAIProp into MOAIGrid. Step 4: Create a new MOAIGrid subclass which has a slightly more powerful draw routine, and also allows specifying additional traits.

    The new design uses palettes rather than inline arbitrary colors largely for space reasons; it's pretty likely that, in many cases, a palette lookup of a smallish number of colors will be adequate, and it'll save a ton of space for a large grid.

    I've found a couple of minor issues (a documentation typo), and provided hooks for setting the alpha channel separately per-item as well. This gets the functionality to a point where it can do most of what I was previously doing using Corona, and do it much more efficiently, too.

    opened by seebs 11
  • Build broken on Windows 10 using CMake

    Build broken on Windows 10 using CMake

    https://github.com/moai/moai-dev/blob/b01816fe862b6b2fc7f53e6ada0d1544927d9d87/src/moai-core/MOAILuaRuntime.cpp#L829

    This above line I did fix changing to call: return this->mState.IsValid(); because is the same logic.

    https://github.com/moai/moai-dev/blob/b01816fe862b6b2fc7f53e6ada0d1544927d9d87/src/moai-sim/MOAIFrameBuffer.cpp#L63

    This above line I did fix changing for the code below. I didn't know if it is correct but it works:

    MOAILuaSharedPtr< int > empty;
    
    self->mGrabNextFrame = self->mFrameImage != empty;
    

    https://github.com/moai/moai-dev/blob/b01816fe862b6b2fc7f53e6ada0d1544927d9d87/cmake/cmake/third-party/sdl2/CMakeLists.txt#L5

    The SDL2 third-party is using version 2.0.4 but there is 2.0.9 in submodules folder only. Changed to 2.0.9 line 5 and line 11 works.

    https://github.com/moai/moai-dev/blob/b01816fe862b6b2fc7f53e6ada0d1544927d9d87/src/zl-gfx/ZLGfxDevice.cpp#L127

    This variable majorVersion is not declared in the class. I changed to sMajorVersion.

    I didn't make a pull request because I don't know if these changes are correct.

    opened by programadorthi 0
  • Update moaiwebsite.github.io

    Update moaiwebsite.github.io

    The copyright line at the bottom is from 2012-2014 Zipline Games.

    We have to update it. And also, do we have a place where all our production level games can be displayed? We must put a link of that in the wiki and update the readme and the website too.

    opened by zameelpichen 1
  • Linux build fails (and how to somehow fix it)

    Linux build fails (and how to somehow fix it)

    Tried to build current branch recently, and build failed. After some trial I finally successfully build it, but with some hacks, so let me just list my problems and my 'fixes'.

    1. My system: Ubuntu 18.04.1 LTS on MSI Dominator laptop (2K14 or so)
    2. expat not compiling, complaining on You do not have support for any sources of high quality entropy, Upd thx @ciwrl, updated cmake:
    diff --git a/cmake/cmake/cmake-modules/platform-linux.cmake b/cmake/cmake/cmake-modules/platform-linux.cmake
    index 7b61c0c2d..c91cce9a6 100644
    --- a/cmake/cmake/cmake-modules/platform-linux.cmake
    +++ b/cmake/cmake/cmake-modules/platform-linux.cmake
    @@ -1,3 +1,3 @@
      #find_package ( OpenGL REQUIRED )
    -  set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPOSIX  -DNDEBUG -DHAVE_MEMMOVE" )
    -  set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -DPOSIX " )
    \ No newline at end of file
    +  set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPOSIX  -DNDEBUG -DHAVE_MEMMOVE -DXML_DEV_URANDOM" )
    +  set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -DPOSIX " )
    
    1. Old SDL2, build failed with:
    libmoai/third-party/sdl2/install/lib/libSDL2.a(SDL_waylandvideo.c.o): In function `wl_registry_bind':
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    libmoai/third-party/sdl2/install/lib/libSDL2.a(SDL_waylandvideo.c.o):/usr/include/wayland-client-protocol.h:1079: more undefined references to `wl_proxy_marshal_constructor_versioned' follow
    libmoai/third-party/sdl2/install/lib/libSDL2.a(SDL_waylandevents.c.o): In function `wl_registry_bind':
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    libmoai/third-party/sdl2/install/lib/libSDL2.a(SDL_waylandtouch.c.o): In function `wl_registry_bind':
    /usr/include/wayland-client-protocol.h:1079: undefined reference to `wl_proxy_marshal_constructor_versioned'
    

    to heal this, just updated SDL2 to 2.0.8, updated cmake file (see 5), note about bug and fix: http://blfs-dev.linuxfromscratch.narkive.com/bJ1fxg4e/sdl2-2-0-4-fails-to-compile-with-wayland-1-12-0 4. Problems building sndio:

    libmoai/third-party/sdl2/install/lib/libSDL2.a(SDL_sndioaudio.c.o): In function `SNDIO_Init':
    SDL_sndioaudio.c:(.text+0xa3): undefined reference to `sio_open'
    SDL_sndioaudio.c:(.text+0xb1): undefined reference to `sio_close'
    SDL_sndioaudio.c:(.text+0xbf): undefined reference to `sio_setpar'
    SDL_sndioaudio.c:(.text+0xcd): undefined reference to `sio_getpar'
    SDL_sndioaudio.c:(.text+0xdb): undefined reference to `sio_start'
    SDL_sndioaudio.c:(.text+0xe9): undefined reference to `sio_stop'
    SDL_sndioaudio.c:(.text+0xf7): undefined reference to `sio_read'
    SDL_sndioaudio.c:(.text+0x105): undefined reference to `sio_write'
    SDL_sndioaudio.c:(.text+0x113): undefined reference to `sio_nfds'
    SDL_sndioaudio.c:(.text+0x121): undefined reference to `sio_pollfd'
    SDL_sndioaudio.c:(.text+0x12f): undefined reference to `sio_revents'
    SDL_sndioaudio.c:(.text+0x13d): undefined reference to `sio_eof'
    SDL_sndioaudio.c:(.text+0x14b): undefined reference to `sio_initpar'
    

    which is healed by adding link flag to cmake file (taken from https://stackoverflow.com/questions/41608136/sdl-sndioaudio-c-undefined-reference-to-sio#41621638), updted cmake file (see 5) 5. Update SDL2 cmake file for new version and sndio fix

    diff --git a/cmake/cmake/third-party/sdl2/CMakeLists.txt b/cmake/cmake/third-party/sdl2/CMakeLists.txt
    index 6f85c3528..fa67a342e 100644
    --- a/cmake/cmake/third-party/sdl2/CMakeLists.txt
    +++ b/cmake/cmake/third-party/sdl2/CMakeLists.txt
    @@ -2,13 +2,13 @@ cmake_minimum_required ( VERSION 3.0 )
     project ( SDL2-static )
     include(ExternalProject)
     
    -set (SDL2_SOURCE_DIR "${MOAI_ROOT}/3rdparty/sdl2-2.0.4")
    +set (SDL2_SOURCE_DIR "${MOAI_ROOT}/3rdparty/sdl2-2.0.8")
     set (SDL2_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/binarydir")
     ExternalProject_Add(sdl2
        SOURCE_DIR "${SDL2_SOURCE_DIR}"
        CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/install"  -DSDL_SHARED=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DLIBC=ON
        CMAKE_CACHE_ARGS "-DSDL2_SOURCE_DIR:string=${SDL2_SOURCE_DIR}" "-DSDL2_BINARY_DIR:string=${SDL2_BINARY_DIR}" "-DSDL_STATIC:bool=on" "-DSDL_SHARED:bool=off" 
    -   PREFIX "${CMAKE_CURRENT_BINARY_DIR}/sdl2-2.0.4"
    +   PREFIX "${CMAKE_CURRENT_BINARY_DIR}/sdl2-2.0.8"
        INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/install"
     )
     
    @@ -35,7 +35,6 @@ add_library(SDL2-static INTERFACE)
     
     #todo install headers too :)
     target_include_directories(SDL2-static INTERFACE "${SDL2_SOURCE_DIR}/include_moai" "${SDL2_SOURCE_DIR}/include" )
    -target_link_libraries(SDL2-static INTERFACE SDL2-static-imp )
    -
    +target_link_libraries(SDL2-static INTERFACE SDL2-static-imp sndio )
     
     install(TARGETS SDL2-static EXPORT libmoai ARCHIVE DESTINATION lib)
    
    1. Missing variable in src/zl-gfx/ZLGfxDevice.cpp (commented out, but used), fixed by using global variable, defined in this file
    diff --git a/src/zl-gfx/ZLGfxDevice.cpp b/src/zl-gfx/ZLGfxDevice.cpp
    index 409956b72..92287f688 100644
    --- a/src/zl-gfx/ZLGfxDevice.cpp
    +++ b/src/zl-gfx/ZLGfxDevice.cpp
    @@ -124,7 +124,7 @@ void ZLGfxDevice::Initialize () {
     
                    // if framebuffer object is not in code, check to see if it's available as
                    // an extension and remap to core function pointers if so
    -               if (( isOpenGLES == false ) && ( majorVersion < 3 )) {
    +               if (( isOpenGLES == false ) && ( sMajorVersion < 3 )) {
     
                            if ( glewIsSupported ( "GL_EXT_framebuffer_object" )) {
    
    1. Cannot build moai-http-client, I guess problems with expat. Cannot find MOAIXmlParser. To fix this I modified #if guards:
    diff --git a/src/moai-http-client/MOAIHttpTaskBase.cpp b/src/moai-http-client/MOAIHttpTaskBase.cpp
    index d0d15f02f..5ac22486e 100644
    --- a/src/moai-http-client/MOAIHttpTaskBase.cpp
    +++ b/src/moai-http-client/MOAIHttpTaskBase.cpp
    @@ -3,7 +3,7 @@
     
     #include "pch.h"
     
    -#if MOAI_WITH_TINYXML
    +#if MOAI_WITH_TINYXML && MOAI_WITH_EXPAT
       #include <tinyxml.h>
     #endif 
     
    @@ -225,7 +225,7 @@ int MOAIHttpTaskBase::_isBusy ( lua_State* L ) {
     int MOAIHttpTaskBase::_parseXml ( lua_State* L ) {
            MOAI_LUA_SETUP ( MOAIHttpTaskBase, "U" )
     
    -       #if MOAI_WITH_TINYXML
    +       #if MOAI_WITH_TINYXML && MOAI_WITH_EXPAT
     
                    if ( !self->mData.Size ()) return 0;
                    
    

    Hope this will help:)

    opened by iskolbin 2
Releases(Version-1.5.2-binary-desktop)
  • Version-1.5.2-binary-desktop(Sep 27, 2014)

Owner
Zipline Games, Inc.
Zipline Games, Inc.
The Raspberry Pi Pico SDK (henceforth the SDK) provides the headers, libraries and build system necessary

The Raspberry Pi Pico SDK (henceforth the SDK) provides the headers, libraries and build system necessary to write programs for the RP2040-based devices such as the Raspberry Pi Pico in C, C++ or assembly language.

Raspberry Pi 1.9k Jan 5, 2023
The old Windows NT OpenGL samples/SDK from an MSDN CD.

The OpenGL API is supported on a variety of graphics hardware; the software in this release provides support for graphics hardware including basic emulation on any video adapter that is supported with the operating system, and accelerated graphics hardware that is supported by an OpenGL mini-client driver (MCD) or an OpenGL installable client driver (ICD).

Ian Hanschen 19 Aug 13, 2022
Poc to test my little friend features without any sdk

poc.vic-hack POC to test my little friend "vector" features without any sdk Ultimate goal - being able to write own firmware components without propri

Oleg Lytvynenko 8 Feb 26, 2022
A SDK with a built-in cheat for Garry's Mod.

GMod-SDK This is a module for Garry's Mod that works based on a SDK. I've spent the past few days reversing a few modules of the game, in order to get

null 70 Jan 3, 2023
Portal 2/Portal Reloaded internal cheat sdk with imgui-based menu

portal2-internal A simple Portal 2/Portal Reloaded internal cheat base with imgui-based menu coded in a few days because why not Features: simple menu

es3n1n 38 Jan 2, 2023
Playground app for ZNN Dart SDK

Prerequisites Flutter SDK VS Code IDE recommended Installation Clone the repo git clone https://github.com/nemoryoliver/znn_playground.git Install pa

Oliver Martinez 10 Oct 26, 2022
32blit SDK boilerplate for the PicoSystem RP2040-based handheld

PicoSystem 32blit Boilerplate This is a basic template for starting 32blit projects for the Pimoroni PicoSystem. It shows a minimal code layout and as

32blit 15 Nov 14, 2022
MinIO C++ Client SDK for Amazon S3 Compatible Cloud Storage

The MinIO C++ Client SDK provides simple APIs to access any Amazon S3 compatible object storage.

Multi-Cloud Object Storage 45 Dec 26, 2022
First open-source Geometry Dash cross-platform Modding SDK

BoolkaSDK First open-source Geometry Dash cross-platform Modding SDK Requirements CMake 3.21 Android NDK r23 LLVM x86 Java and ApkTool Building Open C

null 7 Nov 20, 2022
Polaris-SDK for PHP

polaris-php Polaris is an operation centre that supports multiple programming languages, with high compatibility to different application framework. P

liaochuntao 0 Dec 10, 2021
This repository contains the source for the ANARI API SDK

ANARI-SDK This repository contains the source for the ANARI API SDK. This includes: Front-end library API utilties and helpers (mostly for implementat

The Khronos Group 69 Dec 11, 2022
A SDK for WinnerMicro W806

About This is a SDK for WinnerMicro W806, migrated from W800 SDK. SDK File Structure WM_SDK ├─app # User application source code ├─bin

IOsetting 94 Dec 30, 2022
A bare metal SDK for the ESP32 & ESP32C3

MDK (Minimal Development Kit) - a baremetal ESP32/ESP32C3 SDK An bare metal, make-based SDK for the ESP32, ESP32C3 chips. It is written from scratch u

Sergey Lyubka 100 Jan 2, 2023
Korg logue SDK port of Freeverb

Freeverb reverberator for logue SDK This is a logue SDK port of Freeverb reverberator by Jezar at Dreampoint. See readme.txt for the original readme.

null 7 Jul 30, 2022
SDK for creating GTA IV .asi plugins

iv-sdk "SDK" for creating GTA IV .asi plugins Supports 1.0.7.0 and 1.0.8.0 (EFIGS only) The majority of the project has been created for 1.0.8.0 and t

null 29 Dec 9, 2022
SDK for building cross-platform desktop apps in ANSI-C

NAppGUI Cross-Platform C SDK. Build portable desktop applications for Windows, macOS and Linux, using just C. Quick start in Windows Prerequisites Vis

Francisco García Collado 242 Jan 2, 2023
Raspberry Pi Pico SDK Examples

Raspberry Pi Pico SDK Examples Getting started See Getting Started with the Raspberry Pi Pico and the README in the pico-sdk for information on gettin

Raspberry Pi 1.6k Jan 1, 2023
Simple C++ sample showing how to use OpenCL v1.2 on Windows/Linux/OSX with no 3rd party SDK installs

simple_opencl This is a simple and practical C++ sample showing how to use OpenCL v1.2 on Windows/Linux/OSX with no 3rd party SDK installs required un

Rich Geldreich 30 Sep 14, 2022
Sensory Cloud C++ SDK

Sensory Cloud C++ SDK This repository contains the source code for the Sensory Cloud C++ SDK. Requirements This project uses CMake as the primary buil

SensoryCloud 2 Jan 10, 2022