molecular
Public Member Functions | List of all members
molecular::gfx::ProgramProvider Class Reference

Caches programs from the ProgramGenerator. More...

#include <ProgramProvider.h>

Inheritance diagram for molecular::gfx::ProgramProvider:
molecular::util::NonCopyable

Public Member Functions

 ProgramProvider (RenderCmdSink &renderer, programgenerator::ProgramGenerator &generator)
 
 ~ProgramProvider ()
 
template<class Iterator , typename ArraySizeFunc >
RenderCmdSink::ProgramGetProgram (Iterator varsBegin, Iterator varsEnd, ArraySizeFunc &&arraySizeFunc)
 Get program with the given inputs and outputs. More...
 

Detailed Description

Caches programs from the ProgramGenerator.

Todo:
Feeding different available inputs (of which not all are used) to the ProgramGenerator may result in equal programs that are stored multiple times by the ProgramProvider.

Constructor & Destructor Documentation

molecular::gfx::ProgramProvider::ProgramProvider ( RenderCmdSink renderer,
programgenerator::ProgramGenerator generator 
)
molecular::gfx::ProgramProvider::~ProgramProvider ( )

Member Function Documentation

template<class Iterator , typename ArraySizeFunc >
RenderCmdSink::Program * molecular::gfx::ProgramProvider::GetProgram ( Iterator  varsBegin,
Iterator  varsEnd,
ArraySizeFunc &&  arraySizeFunc 
)

Get program with the given inputs and outputs.

If no program with these variables has been created yet, generates one and cashes it.

Parameters
arraySizeFuncFunction that returns an array size for a given variable hash.

The documentation for this class was generated from the following files: