@@ -18,3 +18,256 @@ The following ideas need to be investigated:
1818
1919 * We may benefit from the reference receive optimization when doing calls
2020 * We may want a way to pipeline draw operations
21+ * Using HiPE mutable bytearrays for "void* pixels" types
22+
23+ The following tasks remain to be done:
24+
25+ * http://hg.libsdl.org/SDL/file/default/include/SDL.h
26+ * We need a function which_subsystems() which lists started subsystems.
27+
28+ * http://hg.libsdl.org/SDL/file/default/include/SDL_hints.h
29+ * We need to implement everything.
30+
31+ * http://hg.libsdl.org/SDL/file/default/include/SDL_error.h
32+ * Anything that can produce errors will have an automatic call to SDL_GetError.
33+ * I am not sure we need any direct access to those functions.
34+
35+ * http://hg.libsdl.org/SDL/file/default/include/SDL_log.h
36+ * We already have logging in Erlang. Not sure we need this.
37+
38+ * http://hg.libsdl.org/SDL/file/default/include/SDL_assert.h
39+ * I am not sure we need this, and we can't use the assert macro directly anyway.
40+
41+ * http://hg.libsdl.org/SDL/file/default/include/SDL_version.h
42+ * It might be useful to provide access to some of the macros as functions.
43+ * The SDL_GetRevisionNumber function needs to be implemented.
44+ * It might be interesting to use the macros to conditionally implement some features,
45+ this way we could be compatible with all versions >= 2.0.0.
46+
47+ * http://hg.libsdl.org/SDL/file/default/include/SDL_video.h
48+ * The SDL_DisplayMode structure and related functions need to be implemented:
49+ * SDL_GetNumDisplayModes()
50+ * SDL_GetDisplayMode()
51+ * SDL_GetDesktopDisplayMode()
52+ * SDL_GetCurrentDisplayMode()
53+ * SDL_GetClosestDisplayMode()
54+ * SDL_SetWindowDisplayMode()
55+ * SDL_GetWindowDisplayMode()
56+ * Most other display functions are also not implemented:
57+ * SDL_GetNumVideoDisplays()
58+ * SDL_GetDisplayName()
59+ * SDL_GetDisplayBounds()
60+ * SDL_GetDisplayDPI()
61+ * Some window functions need to be implemented:
62+ * SDL_CreateWindowFrom()
63+ * SDL_GetWindowData()
64+ * SDL_SetWindowData()
65+ * SDL_GetWindowPixelFormat()
66+ * SDL_GetWindowFromID()
67+ * SDL_GetWindowSurface()
68+ * SDL_UpdateWindowSurface()
69+ * SDL_UpdateWindowSurfaceRects()
70+ * SDL_GetGrabbedWindow()
71+ * SDL_SetWindowGammaRamp()
72+ * SDL_GetWindowGammaRamp()
73+ * There is an SDL_WINDOW_MOUSE_CAPTURE window flag we need to implement.
74+ * There are two window pos flags, related to multi monitors, that we don't support:
75+ * SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
76+ * SDL_WINDOWPOS_CENTERED_DISPLAY(X)
77+ * We do not support OpenGL at all yet:
78+ * SDL_GLContext
79+ * SDL_GLattr
80+ * SDL_GLprofile
81+ * SDL_GLcontextFlag
82+ * SDL_GLcontextReleaseFlag
83+ * SDL_GL_LoadLibrary()
84+ * SDL_GL_GetProcAddress()
85+ * SDL_GL_UnloadLibrary()
86+ * SDL_GL_ExtensionSupported()
87+ * SDL_GL_ResetAttributes()
88+ * SDL_GL_SetAttribute()
89+ * SDL_GL_GetAttribute()
90+ * SDL_GL_CreateContext()
91+ * SDL_GL_MakeCurrent()
92+ * SDL_GL_GetCurrentWindow()
93+ * SDL_GL_GetCurrentContext()
94+ * SDL_GL_GetDrawableSize()
95+ * SDL_GL_SetSwapInterval()
96+ * SDL_GL_GetSwapInterval()
97+ * SDL_GL_SwapWindow()
98+ * SDL_GL_DeleteContext()
99+ * We do not support any of the video driver related functions:
100+ * SDL_GetNumVideoDrivers()
101+ * SDL_GetVideoDriver()
102+ * SDL_VideoInit()
103+ * SDL_VideoQuit()
104+ * SDL_GetCurrentVideoDriver()
105+ * Flags and functions relating to SDL_HitTest are not implemented:
106+ * SDL_HitTestResult
107+ * SDL_HitTest() callback
108+ * SDL_SetWindowHitTest()
109+ * Screensaver related functions are not implemented:
110+ * SDL_IsScreenSaverEnabled()
111+ * SDL_EnableScreenSaver()
112+ * SDL_DisableScreenSaver()
113+
114+ * http://hg.libsdl.org/SDL/file/default/include/SDL_render.h
115+ * The SDL_RendererInfo structure and related functions are not implemented:
116+ * SDL_GetRenderDriverInfo()
117+ * SDL_GetRendererInfo()
118+ * The SDL_TextureAccess enum is not implemented.
119+ * The SDL_TextureModulate enum is not implemented.
120+ * A number of other functions are not implemented:
121+ * SDL_CreateSoftwareRenderer()
122+ * SDL_GetRenderer()
123+ * SDL_CreateTexture()
124+ * SDL_QueryTexture()
125+ * SDL_UpdateTexture()
126+ * SDL_UpdateYUVTexture()
127+ * SDL_LockTexture()
128+ * SDL_UnlockTexture()
129+ * SDL_SetRenderTarget()
130+ * SDL_GetRenderTarget()
131+ * SDL_RenderIsClipEnabled()
132+ * SDL_RenderReadPixels()
133+ * We do not support OpenGL at all yet:
134+ * SDL_GL_BindTexture()
135+ * SDL_GL_UnbindTexture()
136+
137+ * http://hg.libsdl.org/SDL/file/default/include/SDL_pixels.h
138+ * We need to implement everything.
139+
140+ * http://hg.libsdl.org/SDL/file/default/include/SDL_rect.h
141+ * We need to implement everything, though we already have points and rects as maps elsewhere.
142+
143+ * http://hg.libsdl.org/SDL/file/default/include/SDL_surface.h
144+ * We need to implement everything except SDL_FreeSurface().
145+
146+ * http://hg.libsdl.org/SDL/file/default/include/SDL_syswm.h
147+ * We need to implement everything.
148+
149+ * http://hg.libsdl.org/SDL/file/default/include/SDL_events.h
150+ * The following event types need to be implemented:
151+ * SDL_APP_TERMINATING (iOS and Android)
152+ * SDL_APP_LOWMEMORY (iOS and Android)
153+ * SDL_APP_WILLENTERBACKGROUND (iOS and Android)
154+ * SDL_APP_DIDENTERBACKGROUND (iOS and Android)
155+ * SDL_APP_WILLENTERFOREGROUND (iOS and Android)
156+ * SDL_APP_DIDENTERFOREGROUND (iOS and Android)
157+ * SDL_SYSWMEVENT (SDL_SysWMEvent, SDL_SysWMmsg)
158+ * SDL_TEXTEDITING (SDL_TEXTEDITINGEVENT_TEXT_SIZE, SDL_TextEditingEvent)
159+ * SDL_TEXTINPUT (SDL_TEXTINPUTEVENT_TEXT_SIZE, SDL_TextInputEvent)
160+ * SDL_JOYAXISMOTION (SDL_JoyAxisEvent)
161+ * SDL_JOYBALLMOTION (SDL_JoyBallEvent)
162+ * SDL_JOYHATMOTION (SDL_JoyHatEvent)
163+ * SDL_JOYBUTTONDOWN (SDL_JoyButtonEvent)
164+ * SDL_JOYBUTTONUP (SDL_JoyButtonEvent)
165+ * SDL_JOYDEVICEADDED (SDL_JoyDeviceEvent)
166+ * SDL_JOYDEVICEREMOVED (SDL_JoyDeviceEvent)
167+ * SDL_CONTROLLERAXISMOTION (SDL_ControllerAxisEvent)
168+ * SDL_CONTROLLERBUTTONDOWN (SDL_ControllerButtonEvent)
169+ * SDL_CONTROLLERBUTTONUP (SDL_ControllerButtonEvent)
170+ * SDL_CONTROLLERDEVICEADDED (SDL_ControllerDeviceEvent)
171+ * SDL_CONTROLLERDEVICEREMOVED (SDL_ControllerDeviceEvent)
172+ * SDL_CONTROLLERDEVICEREMAPPED (SDL_ControllerDeviceEvent)
173+ * SDL_FINGERDOWN (SDL_TouchFingerEvent)
174+ * SDL_FINGERUP (SDL_TouchFingerEvent)
175+ * SDL_FINGERMOTION (SDL_TouchFingerEvent)
176+ * SDL_DOLLARGESTURE (SDL_DollarGestureEvent)
177+ * SDL_DOLLARRECORD (SDL_DollarGestureEvent)
178+ * SDL_MULTIGESTURE (SDL_MultiGestureEvent)
179+ * SDL_CLIPBOARDUPDATE
180+ * SDL_DROPFILE (SDL_DropEvent)
181+ * SDL_AUDIODEVICEADDED (SDL_AudioDeviceEvent)
182+ * SDL_AUDIODEVICEREMOVED (SDL_AudioDeviceEvent)
183+ * SDL_RENDER_TARGETS_RESET
184+ * SDL_RENDER_DEVICE_RESET
185+ * User defined events, from SDL_USEREVENT to SDL_LASTEVENT (SDL_UserEvent)
186+ * We currently do not handle the SDL_MouseMotionEvent.state value
187+ * We currently do not handle the SDL_MouseWheelEvent.direction value (SDL >= 2.0.4, unreleased yet)
188+ * We need to implement the following functions:
189+ * SDL_PumpEvents()
190+ * SDL_PeepEvents()
191+ * SDL_HasEvent()
192+ * SDL_HasEvents()
193+ * SDL_FlushEvent()
194+ * SDL_FlushEvents()
195+ * SDL_WaitEvent()
196+ * SDL_WaitEventTimeout()
197+ * SDL_PushEvent()
198+ * SDL_SetEventFilter()
199+ * SDL_GetEventFilter()
200+ * SDL_AddEventWatch()
201+ * SDL_DelEventWatch()
202+ * SDL_FilterEvents()
203+ * SDL_EventState()
204+ * SDL_RegisterEvents()
205+
206+ * http://hg.libsdl.org/SDL/file/default/include/SDL_keyboard.h
207+ * We need to implement everything.
208+
209+ * http://hg.libsdl.org/SDL/file/default/include/SDL_keycode.h
210+ * We probably should make it easy to identify keycodes and scancodes.
211+
212+ * http://hg.libsdl.org/SDL/file/default/include/SDL_scancode.h
213+ * We probably should make it easy to identify keycodes and scancodes.
214+
215+ * http://hg.libsdl.org/SDL/file/default/include/SDL_mouse.h
216+ * We need to implement everything.
217+
218+ * http://hg.libsdl.org/SDL/file/default/include/SDL_joystick.h
219+ * We need to implement everything.
220+
221+ * http://hg.libsdl.org/SDL/file/default/include/SDL_gamecontroller.h
222+ * We need to implement everything.
223+
224+ * http://hg.libsdl.org/SDL/file/default/include/SDL_haptic.h
225+ * We need to implement everything.
226+
227+ * http://hg.libsdl.org/SDL/file/default/include/SDL_audio.h
228+ * We need to implement everything.
229+ * We might want to implement SDL_mixer first.
230+
231+ * http://hg.libsdl.org/SDL/file/default/include/SDL_thread.h
232+ * We don't really need this for Erlang, do we?
233+
234+ * http://hg.libsdl.org/SDL/file/default/include/SDL_mutex.h
235+ * We don't really need this for Erlang, do we?
236+
237+ * http://hg.libsdl.org/SDL/file/default/include/SDL_atomic.h
238+ * We don't really need this for Erlang, do we?
239+
240+ * http://hg.libsdl.org/SDL/file/default/include/SDL_timer.h
241+ * We need to implement everything.
242+ * It's not the most useful to have, but doesn't hurt to have it.
243+
244+ * http://hg.libsdl.org/SDL/file/default/include/SDL_rwops.h
245+ * We need to implement everything.
246+ * It's currently unclear if and how this should be implemented.
247+
248+ * http://hg.libsdl.org/SDL/file/default/include/SDL_loadso.h
249+ * We don't really need this for Erlang, do we?
250+
251+ * http://hg.libsdl.org/SDL/file/default/include/SDL_platform.h
252+ * We need to implement the one function in there. Can always be useful.
253+
254+ * http://hg.libsdl.org/SDL/file/default/include/SDL_cpuinfo.h
255+ * The function SDL_HasAVX2() needs to be implemented. (SDL >= 2.0.4, unreleased yet)
256+
257+ * http://hg.libsdl.org/SDL/file/default/include/SDL_endian.h
258+ * We need to implement everything.
259+ * It's currently unclear if and how this should be implemented.
260+
261+ * http://hg.libsdl.org/SDL/file/default/include/SDL_bits.h
262+ * We need to implement everything.
263+ * It's currently unclear if and how this should be implemented.
264+
265+ * http://hg.libsdl.org/SDL/file/default/include/SDL_system.h
266+ * We need to implement everything.
267+ * It's currently unclear if and how this should be implemented.
268+
269+ * http://hg.libsdl.org/SDL/file/default/include/SDL_stdinc.h
270+ * Nothing except support for SDL_bool was implemented.
271+ * There might be useful bits and pieces in there, in particular the math or iconv functions.
272+
273+ * SDL_image, SDL_mixer, ... also need to be investigated and implemented.
0 commit comments