#ifndef __GL_SAMPLERS_H #define __GL_SAMPLERS_H #include enum ESampler { NoSampler = -1, SamplerRepeat, SamplerClampX, SamplerClampY, SamplerClampXY, SamplerNoFilterRepeat, SamplerNoFilterClampX, SamplerNoFilterClampY, SamplerNoFilterClampXY, Sampler2DFiltered, // Currently unused shpuld be used for 2D content NumSamplers }; class FSamplerManager { // We need 6 different samplers: 4 for the different clamping modes, // one for 2D-textures and one for voxel textures unsigned int mSamplers[NumSamplers]; void UnbindAll(); void CreateSamplers(); public: FSamplerManager(); ~FSamplerManager(); uint8_t Bind(int texunit, int num, int lastval); void SetTextureFilterMode(int mode, int aniso); }; #endif