Augmenter Class¶
Header: #include "easyar/augmenter.hpp"
Inherits: RefBase
Description¶
Augmenter是一个渲染器,它从tracker获取frame,然后将camera的图像作为AR场景的背景渲染出来。它通常在渲染线程中使用 。
Public Types¶
enum API{kAugmenterAPIDefault, kAugmenterAPINONE, kAugmenterAPIGLES2, kAugmenterAPIGL, kAugmenterAPID3D9, kAugmenterAPID3D11}
Public Functions¶
enum Augmenter::API¶
Constant |
Value |
Description |
---|---|---|
kAugmenterAPIDefault |
0 |
默认API |
kAugmenterAPINONE |
1 |
空API |
kAugmenterAPIGLES2 |
2 |
OpenGL ES 2 |
kAugmenterAPIGL |
3 |
Desktop OpenGL |
kAugmenterAPID3D9 |
4 |
Direct3D9 |
kAugmenterAPID3D11 |
5 |
Direct3D11 |
Augmenter()¶
创建Augmenter object.
virtual ~Augmenter()¶
销毁Augmenter实例。
void chooseAPI(API api = kAugmenterAPIDefault, void* device = 0)¶
切换图形API。这个函数通常不需要手动调用。
Frame newFrame(const ImageTracker& obj) (until 1.2.1)¶
从ImageTracker获取新的frame。
Frame newFrame(const BarCodeScanner& obj) (until 1.2.1)¶
从BarCodeScanner获取新的frame。
Frame newFrame() (since 1.3.0)¶
获取新的frame。在获得有效frame之前必须先attach一个CameraDevice。
virtual bool attachCamera(const CameraDevice& obj) (since 1.3.0)¶
将CameraDevice连接到Augmenter。如果没有CameraDevice的连接,通过newFrame得到的Frame将会是空的。
virtual bool detachCamera(const CameraDevice& obj) (since 1.3.0)¶
从Augmenter断开CameraDevice的连接。
void setViewPort(const Vec4I& viewport)¶
设置绘制camera图像的viewport。viewport是Vec4I数据,和输入glViewPort的参数{left, top, width, height}类似。
如果通过setVideoBackgroundTextureID接口设置了texture,包含图像的最大viewport大小可以通过video BackgroundTextureSize获取,如果将viewport大小设置为0,这个最大的大小将被使用来更新texture。
Vec4I viewPort() const¶
获取viewport。
bool drawVideoBackground()¶
绘制当前camera图像到场景背景。如果没有texture被设置,这个函数将在当前context中渲染。如果通过setVideoBackgr oundTextureID接口设置了texture,这个函数将绘制到所设置的texture上。这个函数应该在需要显示camera背景的每帧被 调用。
Vec2I videoBackgroundTextureSize()¶
获取当前显示的背景图像的camera输出图像的大小。这个大小会在 CameraDevice 的size改变的时候跟着变化。如果无法获取当前 frame,将返回 {0, 0} 。
PixelFormat videoBackgroundTextureFormat()¶
获取当前显示的背景图像的格式。如果无法获取当前frame,将返回 kPixelFormatUnknown 。
void setVideoBackgroundTextureID(int id)¶
设置texture id。如果 id 为有效的texture,drawVideoBackground将可用来更新texture。如果 id 为0,之前设置的数值将被清除,drawVideoBackground调用将不再更新texture,而是根据当前context设置进行渲染。
void setVideoBackgroundTextureID(void* id)¶
设置texture id,参数 id 将按值使用。如果 id 为有效的texture,drawVideoBackground将可用来更新texture。如果 id 为0,之前设置的数值将被清除,drawVideoBackground调用将不再更新texture,而是根据当前context设置进行渲染。
int id() const¶
返回Augmenter id。