Downloads

Scott Lee’s Portfolio

MY_UI GUI Library

  • MY_UI is a Graphical User Interface Library that I wrote to overcome the limitations of other GUI’s out there. MY_UI is written in Directx, but can be easily ported over by writing a renderer class, which would take approximatly 100 lines of code. MY_UI is extremly fast, light-weight and simple. All draw calls are batched so that a single draw call is issued for the enture UI. The interface is also very simple which makes creating a User Interface quick and easy. There are also many controls which make editing values painless for the developer. Check out run-able demos 32-bit and 64-bit

Math Library

  • In order to use Directx’ math library, their dll must be loaded, which makes it Windows dependent. After searching for a math library that was fast, clean, easy to use, and being disappointed, I began to write my own. This code is written in c++, utilizes the SSE and SSE2 instruction set and covers quaternions, matrix math, Euler angles, vector math, along with various other helpful math functions that are invaluable when developing 3D applications.

UDP_Engine

  • Currently, there are two protocols that are used when a programmer needs to send network data: User Datagram Protocol (UDP), and Transmission Control Protocol (TCP). TCP guarantees data ordering and is reliable; however, TCP does not allow the transmission of unreliable data. Meaning, all data sent is guaranteed to get to it’s destination, which is sometimes undesirable as in the case of streaming voice, streaming movies, or video games. Since all data is guaranteed to arrive at it’s destination, TCP also generally has a higher round trip time. UDP has no guarantees of data order, or it’s reliability, which makes it fast. So, I wrote a networking library to overcome this downfall. UDP_Engine is a network library, which has the following features: reliable data delivery, data ordering, encryption, multiple data channels, and is built to run on multiple threads.

Threading Library

  • Wanting to avoid using the boost library solely for the purpose of using their threading mechanism, I wrote a c++ 11, task based threading library. The library is easy to use, no libraries, or other dlls are needed, just the header and cpp file. Features include the use of parallel for, invoking a single task, work stealing, utilizes the same number of threads as there are cores to avoid time slicing.

Sound Engine

  • A sound engine based off of the Directx sound library. The code was designed for use in a 3D simulation and therefore supports sounds which correctly incorporate the Doppler effects when moved, playing and stopping of sounds, plays concurrent sounds as well as standard music. The usual effects can be modified: reverb; sound position, sound emitting direction and looping.

Open Asset Import Library Animation Player

  • Simple to use code which the animation data from an Open Asset Import Library resource and pre calculates animations to significantly decrease CPU usage when animations are played. The code also supports saving and loading of the animation after it has been loaded.

Octree

  • A spacial data structure –Octree– which supports O(N) insert, delete, and find of objects contained within the tree. There is heavy use of bit twiddling magic in there. I borrowed ideas from the book Game Programming Gems 2, section 4.5, written by Matt Pritchard. Also, the data structure is a flattened out tree, in array form to further increase the speed of the data structure.

Memory Allocator

  • When doing many memory allocations, the new operator will begin to become a bottleneck in an application, so I wrote my own. This memory allocator is based on the Buddy Memory allocation method where memory is handed out in chunks based on a power of two. The allocator is thread-safe, meaning allocations and deallocations can occur simultaneously without errors. This memory allocator is up to 350% faster than Intel Threading Building Blocks’ memory allocator.

Gwen Directx 10 Renderer

  • Gwen assumes that it runs within an engine that handles its own drawing, texture allocation and deallocations. Because of that reason, I wrote my own Directx 10 renderer to work with Gwen handling all text drawing, and texture drawing.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>