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

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

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。