# OpenGLSampler ## 命名空间 `XCEngine::RHI` ## 头文件 `XCEngine/RHI/OpenGL/OpenGLSampler.h` ## 类型 | 类型 | 说明 | |------|------| | `OpenGLSampler` | OpenGL 采样器封装类,继承自 `RHISampler` | | `OpenGLSamplerDesc` | 采样器描述结构体 | | `SamplerWrapMode` | 采样器环绕模式枚举 | | `SamplerFilter` | 采样器滤镜模式枚举 | | `SamplerCompareMode` | 采样器比较模式枚举 | ## 描述 OpenGL 采样器实现,继承自 `RHISampler`。 ## 概述 `OpenGLSampler` 是 RHI 抽象层对 OpenGL 纹理采样器的封装。通过 `OpenGLSamplerDesc` 配置采样参数(过滤模式、环绕模式、各向异性、LOD 等),`Initialize` 方法创建 OpenGL 采样器对象,`Bind`/`Unbind` 控制采样器与纹理单元的绑定状态。 **关键特性:** - 支持点采样、线性采样、各向异性采样 - 支持 Repeat、Mirror、Clamp、Border 等寻址模式 - 支持 Mipmap 多级渐远纹理过滤 - 支持各向异性过滤和 LOD 范围控制 ## 公共方法 | 方法 | 描述 | |------|------| | [`OpenGLSampler`](constructor.md) | 构造函数 | | [`Initialize`](initialize.md) | 初始化采样器(OpenGL 特有) | | [`Shutdown`](shutdown.md) | 关闭采样器 | | [`Bind`](bind.md) | 绑定采样器到纹理单元 | | [`Unbind`](unbind.md) | 解绑采样器 | | [`GetID`](get-id.md) | 获取采样器 ID | | [`GetNativeHandle`](../../sampler/get-native-handle.md) | 获取原生句柄(继承自 `RHISampler`) | ## 使用示例 ```cpp #include "XCEngine/RHI/OpenGL/OpenGLSampler.h" using namespace XCEngine::RHI; OpenGLSamplerDesc desc; desc.minFilter = SamplerFilter::LinearMipmapLinear; desc.magFilter = SamplerFilter::Linear; desc.wrapS = SamplerWrapMode::Repeat; desc.wrapT = SamplerWrapMode::Repeat; desc.maxAnisotropy = 16.0f; OpenGLSampler sampler; if (sampler.Initialize(desc)) { sampler.Bind(0); sampler.Unbind(0); sampler.Shutdown(); } ``` ## 相关文档 - [OpenGL 后端总览](../opengl.md) - [RHISampler](../../sampler/sampler.md) - 抽象采样器接口