Skip to content

Commit 8e65aba

Browse files
committed
Add details about what remains to be done to the README
1 parent 456e3cc commit 8e65aba

File tree

1 file changed

+251
-0
lines changed

1 file changed

+251
-0
lines changed

README.md

Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,254 @@ 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.

0 commit comments

Comments
 (0)