aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-10-18 22:41:41 +0200
committerLoïc Hoguin <[email protected]>2015-10-18 22:44:09 +0200
commitbd648f48ee8fb2f860704baf39ca2923d2e310d2 (patch)
tree0fa5aac2fb40ca9b7fc96424e5b0da5b0fec95c0
parent456e3ccc01e658dce6a43948e8b995d5b432ca80 (diff)
downloadesdl2-bd648f48ee8fb2f860704baf39ca2923d2e310d2.tar.gz
esdl2-bd648f48ee8fb2f860704baf39ca2923d2e310d2.tar.bz2
esdl2-bd648f48ee8fb2f860704baf39ca2923d2e310d2.zip
Add details about what remains to be done to the README
-rw-r--r--README.md253
1 files changed, 253 insertions, 0 deletions
diff --git a/README.md b/README.md
index a5fb1da..324a7e9 100644
--- a/README.md
+++ b/README.md
@@ -18,3 +18,256 @@ The following ideas need to be investigated:
* We may benefit from the reference receive optimization when doing calls
* We may want a way to pipeline draw operations
+ * Using HiPE mutable bytearrays for "void* pixels" types
+
+The following tasks remain to be done:
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL.h
+ * We need a function which_subsystems() which lists started subsystems.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_hints.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_error.h
+ * Anything that can produce errors will have an automatic call to SDL_GetError.
+ * I am not sure we need any direct access to those functions.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_log.h
+ * We already have logging in Erlang. Not sure we need this.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_assert.h
+ * I am not sure we need this, and we can't use the assert macro directly anyway.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_version.h
+ * It might be useful to provide access to some of the macros as functions.
+ * The SDL_GetRevisionNumber function needs to be implemented.
+ * It might be interesting to use the macros to conditionally implement some features,
+ this way we could be compatible with all versions >= 2.0.0.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_video.h
+ * The SDL_DisplayMode structure and related functions need to be implemented:
+ * SDL_GetNumDisplayModes()
+ * SDL_GetDisplayMode()
+ * SDL_GetDesktopDisplayMode()
+ * SDL_GetCurrentDisplayMode()
+ * SDL_GetClosestDisplayMode()
+ * SDL_SetWindowDisplayMode()
+ * SDL_GetWindowDisplayMode()
+ * Most other display functions are also not implemented:
+ * SDL_GetNumVideoDisplays()
+ * SDL_GetDisplayName()
+ * SDL_GetDisplayBounds()
+ * SDL_GetDisplayDPI()
+ * Some window functions need to be implemented:
+ * SDL_CreateWindowFrom()
+ * SDL_GetWindowData()
+ * SDL_SetWindowData()
+ * SDL_GetWindowPixelFormat()
+ * SDL_GetWindowFromID()
+ * SDL_GetWindowSurface()
+ * SDL_UpdateWindowSurface()
+ * SDL_UpdateWindowSurfaceRects()
+ * SDL_GetGrabbedWindow()
+ * SDL_SetWindowGammaRamp()
+ * SDL_GetWindowGammaRamp()
+ * There is an SDL_WINDOW_MOUSE_CAPTURE window flag we need to implement.
+ * There are two window pos flags, related to multi monitors, that we don't support:
+ * SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
+ * SDL_WINDOWPOS_CENTERED_DISPLAY(X)
+ * We do not support OpenGL at all yet:
+ * SDL_GLContext
+ * SDL_GLattr
+ * SDL_GLprofile
+ * SDL_GLcontextFlag
+ * SDL_GLcontextReleaseFlag
+ * SDL_GL_LoadLibrary()
+ * SDL_GL_GetProcAddress()
+ * SDL_GL_UnloadLibrary()
+ * SDL_GL_ExtensionSupported()
+ * SDL_GL_ResetAttributes()
+ * SDL_GL_SetAttribute()
+ * SDL_GL_GetAttribute()
+ * SDL_GL_CreateContext()
+ * SDL_GL_MakeCurrent()
+ * SDL_GL_GetCurrentWindow()
+ * SDL_GL_GetCurrentContext()
+ * SDL_GL_GetDrawableSize()
+ * SDL_GL_SetSwapInterval()
+ * SDL_GL_GetSwapInterval()
+ * SDL_GL_SwapWindow()
+ * SDL_GL_DeleteContext()
+ * We do not support any of the video driver related functions:
+ * SDL_GetNumVideoDrivers()
+ * SDL_GetVideoDriver()
+ * SDL_VideoInit()
+ * SDL_VideoQuit()
+ * SDL_GetCurrentVideoDriver()
+ * Flags and functions relating to SDL_HitTest are not implemented:
+ * SDL_HitTestResult
+ * SDL_HitTest() callback
+ * SDL_SetWindowHitTest()
+ * Screensaver related functions are not implemented:
+ * SDL_IsScreenSaverEnabled()
+ * SDL_EnableScreenSaver()
+ * SDL_DisableScreenSaver()
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_render.h
+ * The SDL_RendererInfo structure and related functions are not implemented:
+ * SDL_GetRenderDriverInfo()
+ * SDL_GetRendererInfo()
+ * The SDL_TextureAccess enum is not implemented.
+ * The SDL_TextureModulate enum is not implemented.
+ * A number of other functions are not implemented:
+ * SDL_CreateSoftwareRenderer()
+ * SDL_GetRenderer()
+ * SDL_CreateTexture()
+ * SDL_QueryTexture()
+ * SDL_UpdateTexture()
+ * SDL_UpdateYUVTexture()
+ * SDL_LockTexture()
+ * SDL_UnlockTexture()
+ * SDL_SetRenderTarget()
+ * SDL_GetRenderTarget()
+ * SDL_RenderIsClipEnabled()
+ * SDL_RenderReadPixels()
+ * We do not support OpenGL at all yet:
+ * SDL_GL_BindTexture()
+ * SDL_GL_UnbindTexture()
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_pixels.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_rect.h
+ * We need to implement everything, though we already have points and rects as maps elsewhere.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_surface.h
+ * We need to implement everything except SDL_FreeSurface().
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_syswm.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_events.h
+ * The following event types need to be implemented:
+ * SDL_APP_TERMINATING (iOS and Android)
+ * SDL_APP_LOWMEMORY (iOS and Android)
+ * SDL_APP_WILLENTERBACKGROUND (iOS and Android)
+ * SDL_APP_DIDENTERBACKGROUND (iOS and Android)
+ * SDL_APP_WILLENTERFOREGROUND (iOS and Android)
+ * SDL_APP_DIDENTERFOREGROUND (iOS and Android)
+ * SDL_SYSWMEVENT (SDL_SysWMEvent, SDL_SysWMmsg)
+ * SDL_TEXTEDITING (SDL_TEXTEDITINGEVENT_TEXT_SIZE, SDL_TextEditingEvent)
+ * SDL_TEXTINPUT (SDL_TEXTINPUTEVENT_TEXT_SIZE, SDL_TextInputEvent)
+ * SDL_JOYAXISMOTION (SDL_JoyAxisEvent)
+ * SDL_JOYBALLMOTION (SDL_JoyBallEvent)
+ * SDL_JOYHATMOTION (SDL_JoyHatEvent)
+ * SDL_JOYBUTTONDOWN (SDL_JoyButtonEvent)
+ * SDL_JOYBUTTONUP (SDL_JoyButtonEvent)
+ * SDL_JOYDEVICEADDED (SDL_JoyDeviceEvent)
+ * SDL_JOYDEVICEREMOVED (SDL_JoyDeviceEvent)
+ * SDL_CONTROLLERAXISMOTION (SDL_ControllerAxisEvent)
+ * SDL_CONTROLLERBUTTONDOWN (SDL_ControllerButtonEvent)
+ * SDL_CONTROLLERBUTTONUP (SDL_ControllerButtonEvent)
+ * SDL_CONTROLLERDEVICEADDED (SDL_ControllerDeviceEvent)
+ * SDL_CONTROLLERDEVICEREMOVED (SDL_ControllerDeviceEvent)
+ * SDL_CONTROLLERDEVICEREMAPPED (SDL_ControllerDeviceEvent)
+ * SDL_FINGERDOWN (SDL_TouchFingerEvent)
+ * SDL_FINGERUP (SDL_TouchFingerEvent)
+ * SDL_FINGERMOTION (SDL_TouchFingerEvent)
+ * SDL_DOLLARGESTURE (SDL_DollarGestureEvent)
+ * SDL_DOLLARRECORD (SDL_DollarGestureEvent)
+ * SDL_MULTIGESTURE (SDL_MultiGestureEvent)
+ * SDL_CLIPBOARDUPDATE
+ * SDL_DROPFILE (SDL_DropEvent)
+ * SDL_AUDIODEVICEADDED (SDL_AudioDeviceEvent)
+ * SDL_AUDIODEVICEREMOVED (SDL_AudioDeviceEvent)
+ * SDL_RENDER_TARGETS_RESET
+ * SDL_RENDER_DEVICE_RESET
+ * User defined events, from SDL_USEREVENT to SDL_LASTEVENT (SDL_UserEvent)
+ * We currently do not handle the SDL_MouseMotionEvent.state value
+ * We currently do not handle the SDL_MouseWheelEvent.direction value (SDL >= 2.0.4, unreleased yet)
+ * We need to implement the following functions:
+ * SDL_PumpEvents()
+ * SDL_PeepEvents()
+ * SDL_HasEvent()
+ * SDL_HasEvents()
+ * SDL_FlushEvent()
+ * SDL_FlushEvents()
+ * SDL_WaitEvent()
+ * SDL_WaitEventTimeout()
+ * SDL_PushEvent()
+ * SDL_SetEventFilter()
+ * SDL_GetEventFilter()
+ * SDL_AddEventWatch()
+ * SDL_DelEventWatch()
+ * SDL_FilterEvents()
+ * SDL_EventState()
+ * SDL_RegisterEvents()
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_keyboard.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_keycode.h
+ * We probably should make it easy to identify keycodes and scancodes.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_scancode.h
+ * We probably should make it easy to identify keycodes and scancodes.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_mouse.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_joystick.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_gamecontroller.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_haptic.h
+ * We need to implement everything.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_audio.h
+ * We need to implement everything.
+ * We might want to implement SDL_mixer first.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_thread.h
+ * We don't really need this for Erlang, do we?
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_mutex.h
+ * We don't really need this for Erlang, do we?
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_atomic.h
+ * We don't really need this for Erlang, do we?
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_timer.h
+ * We need to implement everything.
+ * It's not the most useful to have, but doesn't hurt to have it.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_rwops.h
+ * We need to implement everything.
+ * It's currently unclear if and how this should be implemented.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_loadso.h
+ * We don't really need this for Erlang, do we?
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_platform.h
+ * We need to implement the one function in there. Can always be useful.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_cpuinfo.h
+ * The function SDL_HasAVX2() needs to be implemented. (SDL >= 2.0.4, unreleased yet)
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_endian.h
+ * We need to implement everything.
+ * It's currently unclear if and how this should be implemented.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_bits.h
+ * We need to implement everything.
+ * It's currently unclear if and how this should be implemented.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_system.h
+ * We need to implement everything.
+ * It's currently unclear if and how this should be implemented.
+
+* http://hg.libsdl.org/SDL/file/default/include/SDL_stdinc.h
+ * Nothing except support for SDL_bool was implemented.
+ * There might be useful bits and pieces in there, in particular the math or iconv functions.
+
+* SDL_image, SDL_mixer, ... also need to be investigated and implemented.