## Introduction csound-sdl provides a simple interface for (currently quite) low level SDL calls. At current only basic shapes are available in order to investigate the possibilities and efficiency of using SDL from within Csound. An example is provided in the examples directory which utilises all current opcodes. ## Requirements - Csound libraries - Cmake >= 2.8.12 - LibSDL2 ## Building Create a build directory at the top of the source tree, execute *cmake ..*, *make* and optionally *make install* as root. If the latter is not used/possible then the resulting module can be used with the *--opcode-lib* flag in Csound. eg: cd csound-sdl mkdir build && cd build cmake .. make && sudo make install ## Opcode overview ### sdlinit *ihandle, kmousetrigger, kmousex, kmousey sdlinit Swindowname, iwidth, iheight, ifps* Initialise the SDL window. - ihandle: the handle to be used by further SDL opcodes to write to that window - kmousetrigger: fires when mouse button is clicked in the window - kmousex: reports mouse X position in window, normalised from 0 to 1 - kmousey: reports mouse Y position in window, normalised from 0 to 1 - Swindowname: the title given to the window - iwidth: width of window in pixels - iheight: height of window in pixels - ifps: frames per second of rendering ### sdlcolour *ihandle sdlcolour kred, kgreen, kblue, kalpha* Set a colour to be used in later drawing. - ihandle: the handle for the colour to be used by further SDL opcodes - kred: red amount with range 0 to 255 - kgreen: green amount with range 0 to 255 - kblue: blue amount with range 0 to 255 - kalpha: alpha amount with range 0 to 255 ### sdlrect *sdlrect iwindow, icolour, kx, ky, kwidth, kheight* Create a rectangle. - iwindow: the window handle from sdlinit - icolour: the colour handle from sdlcolour - kx: X position - ky: Y position - kwidth: width - kheight: height ## sdlline *sdlline iwindow, icolour, kx1, ky1, kx2, ky2* Create a line. - iwindow: the window handle from sdlinit - icolour: the colour handle from sdlcolour - kx1: X position of start point - ky1: Y position of start point - kx2: X position of end point - ky2: Y position of end point