##############################################
Accessing and Customizing the Memory Allocator
##############################################

Let's start by defining a custom function for allocations performed using the 'new' operator:

.. code:: cpp

    void* myCustomNew( size_t size )
    {
        // Here, set your own memory management code!
        return NULL;
    }

Then, we can access the RED::MemoryAllocator and replace the current function by our new function:

.. code:: cpp 

    // The memory allocator is a singleton:
    RED::MemoryAllocator& mal = RED::MemoryAllocator::Get();

    // Let's override the 'new' method:
    mal.SetCustomNew( myCustomNew );

For simplicity, we do only replace one single memory function in the example above. To fully customize the memory management in HOOPS Luminate, all functions defined in the ``RED::MemoryAllocator`` class should be replaced by the application. 