Files
XCEngine/engine/include/XCEngine/RHI/OpenGL/OpenGLSampler.h
ssdfasd 572e0e9bd5 OpenGL: Refactor integration test and enable CTest framework
- Simplify OpenGL integration test structure
- Enable CTest registration for OpenGL tests
- Refactor test fixtures and device enumeration
- Minor code cleanup and improvements
2026-03-20 19:05:50 +08:00

65 lines
1.5 KiB
C++

#pragma once
#include "../RHISampler.h"
#include "../RHITypes.h"
namespace XCEngine {
namespace RHI {
enum class SamplerWrapMode {
Repeat,
MirroredRepeat,
ClampToEdge,
ClampToBorder
};
enum class SamplerFilter {
Nearest,
Linear,
NearestMipmapNearest,
LinearMipmapNearest,
NearestMipmapLinear,
LinearMipmapLinear
};
enum class SamplerCompareMode {
None,
CompareToRef
};
struct OpenGLSamplerDesc {
SamplerFilter minFilter = SamplerFilter::LinearMipmapLinear;
SamplerFilter magFilter = SamplerFilter::Linear;
SamplerWrapMode wrapS = SamplerWrapMode::Repeat;
SamplerWrapMode wrapT = SamplerWrapMode::Repeat;
SamplerWrapMode wrapR = SamplerWrapMode::Repeat;
SamplerCompareMode compareMode = SamplerCompareMode::None;
int compareFunc = 0;
float maxAnisotropy = 1.0f;
float minLod = -1000.0f;
float maxLod = 1000.0f;
};
class OpenGLSampler : public RHISampler {
public:
OpenGLSampler();
~OpenGLSampler() override;
bool Initialize(const OpenGLSamplerDesc& desc);
void Shutdown() override;
void Bind(unsigned int unit) override;
void Unbind(unsigned int unit) override;
unsigned int GetID() const { return m_sampler; }
unsigned int GetID() override { return m_sampler; }
void* GetNativeHandle() override { return reinterpret_cast<void*>(static_cast<uintptr_t>(m_sampler)); }
private:
unsigned int m_sampler;
OpenGLSamplerDesc m_desc;
};
} // namespace RHI
} // namespace XCEngine