Code Monkey home page Code Monkey logo

pineapple's People

Contributors

adamyaxley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

warcraftyax

pineapple's Issues

Allow complete build without pa::Sound

One way to do this:

  • Use a CMake option to enable/disable sound, or auto-disable if FMOD cant be found
  • set a define in pa::Engine to use an empty/null pa::Sound plugin, therefore no external linkage necessary.
  • would need to check whether pa::Platform::getSound() returns null before using each time.

Create OpenAL Sound plugin

OpenAL is a good option to allow for cross-platform sound playback. If we had a OpenAL sound plugin, then it would make the demos playable without the user having to install FMOD.

Fix Release build of demos

When starting up a demo in Release, the following error occurs:

The program can't start because glew32d.dll is missing from your computer...

It looks like there may be two problems here:

  1. glew32.dll is not copied to the executables directory
  2. The demo is attempting to load glew32d.dll, which is the Debug version

Emscripten Build

Emscripten allows C++ code to be compiled into a special subset of Javascripts (asm.js). Adding a build option for Pineapple using Emscripten would allow games written in Pineapple to run in a web browser.

Remove unnecessary/unused Features

Engine/Container

  • DynamicPool
  • IndexBuffer?
  • List
  • ListView
  • Pool
  • TaggedPtr

Engine/Platform

  • Memory?

Engine/Util

  • Obscure
  • Macro - Everything except PA_ASSERTF?

Update TileSet/TileMap/Map

TileSet, TileMap, and Map objects are a little outdated and could do with a second look and fix up to make the API easier to use and more robust.

Refactor Graphics plugin architecture

Instead of implementing various classes such as Texture, Text, Map etc simply implement only one class which has simplified callbacks for rendering such as:

  • createContext()
  • destroyContext()
  • createTexture(std::shared_ptr<Texture>) - creates a native texture object and stores it in the Texture::m_userData
  • destroyTexture(std::shared_ptr<Texture>) - destroys the native texture object stored in Texture::m_userData
  • drawQuads(std::vector<Quad> quads) - draws quad vertices, transforms and texcoords
  • reset() - resets the state and gets ready for another frame

Replace glew with glad

Glad provides generators for various versions of OpenGL and OpenGL ES. The advantages of generate these header files and include them directly in the OpenGL plugin are:

  • The user won't have to install glew separately
  • Specific versions of OpenGL can be targeted, forcing a particular version of OpenGL to be respected at compile time.

Windows x64 build

At the moment can use the cmake generator to build sln files:

cmake -G "Visual Studio 15 2017 Win64"

  • Fix warnings in x64
  • Link with x64 third party libraries
  • Add Win64 CI build
  • Add instructions for building on main page

Make TextureAtlas a first class citizen

This includes making it a pa::Dependency, creating it from pa::Graphics. The goal is to be able to edit the txt file on disk to have it reloadable at runtime.

Font rendering on Android Emulator is broken

The Android Emulator reports an error of:

C:\buildbot\src\android\emu-master-dev\external\qemu\android\android-emugl\host\libs\Translator\GLES_CM\GLEScmImp.cpp:glTexSubImage2D:2058 error 0x501

Unix/X11 Build

This would require a Unix platform plugin that would probably use the X11 windowing system or similar.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.