Files
XCEngine/docs/api/rhi/opengl/sampler/sampler.md

73 lines
2.0 KiB
Markdown
Raw Normal View History

# OpenGLSampler
2026-03-20 02:35:45 +08:00
## 命名空间
2026-03-20 02:35:45 +08:00
`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 范围控制
## 公共方法
| 方法 | 描述 |
|------|------|
2026-03-20 02:35:45 +08:00
| [`OpenGLSampler`](constructor.md) | 构造函数 |
| [`Initialize`](initialize.md) | 初始化采样器OpenGL 特有) |
| [`Shutdown`](shutdown.md) | 关闭采样器 |
| [`Bind`](bind.md) | 绑定采样器到纹理单元 |
| [`Unbind`](unbind.md) | 解绑采样器 |
| [`GetID`](get-id.md) | 获取采样器 ID |
2026-03-20 02:35:45 +08:00
| [`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 后端总览](../overview.md)
- [RHISampler](../../sampler/sampler.md) - 抽象采样器接口