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()
void chooseAPI(API api = kAugmenterAPIDefault, void* device = 0)
Frame newFrame(const ImageTracker& obj)(until 1.2.1)
Frame newFrame(const BarCodeScanner& obj)(until 1.2.1)
Frame newFrame()(since 1.3.0)
virtual bool attachCamera(const CameraDevice& obj)(since 1.3.0)
virtual bool detachCamera(const CameraDevice& obj)(since 1.3.0)
void setViewPort(const Vec4I& viewport)
Vec4I viewPort() const
bool drawVideoBackground()
Vec2I videoBackgroundTextureSize()
PixelFormat videoBackgroundTextureFormat()
void setVideoBackgroundTextureID(int id)
void setVideoBackgroundTextureID(void* id)
int id() const

enum Augmenter::API

Constant Value Description
kAugmenterAPIDefault 0 默认API
kAugmenterAPINONE 1 空API
kAugmenterAPIGLES2 2 OpenGL ES 2
kAugmenterAPIGL 3 桌面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大小可以通过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。

results matching ""

    No results matching ""