Augmenter Class
Header:#include "easyar/augmenter.hpp"
Inherits:RefBase

Description

Augmenter是一个渲染器,它从tracker获取frame,然后将camera的图像作为AR场景的背景渲染出来。它通常在渲染线程中使用。

Public Types

enumAPI{kAugmenterAPIDefault, kAugmenterAPINONE, kAugmenterAPIGLES2, kAugmenterAPIGL, kAugmenterAPID3D9, kAugmenterAPID3D11}

Public Functions

Augmenter()
virtual~Augmenter()
voidchooseAPI(API api = kAugmenterAPIDefault, void* device = 0)
FramenewFrame(const ImageTracker& obj) (until 1.2.1)
FramenewFrame(const BarCodeScanner& obj) (until 1.2.1)
FramenewFrame() (since 1.3.0)
virtual boolattachCamera(const CameraDevice& obj) (since 1.3.0)
virtual booldetachCamera(const CameraDevice& obj) (since 1.3.0)
voidsetViewPort(const Vec4I& viewport)
Vec4IviewPort() const
booldrawVideoBackground()
Vec2IvideoBackgroundTextureSize()
PixelFormatvideoBackgroundTextureFormat()
voidsetVideoBackgroundTextureID(int id)
voidsetVideoBackgroundTextureID(void* id)
intid() const

enum Augmenter::API

ConstantValueDescription
kAugmenterAPIDefault0默认API
kAugmenterAPINONE1空API
kAugmenterAPIGLES22OpenGL ES 2
kAugmenterAPIGL3桌面OpenGL
kAugmenterAPID3D94Direct3D9
kAugmenterAPID3D115Direct3D11

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大小可以通过videoBackgroundTextureSize获取,如果将viewport大小设置为0,这个最大的大小将被使用来更新texture。

Vec4I viewPort() const

获取viewport。

bool drawVideoBackground()

绘制当前camera图像到场景背景。如果没有texture被设置,这个函数将在当前context中渲染。如果通过setVideoBackgroundTextureID接口设置了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。