Exposing emmisive property of the Image3DOverlay

This commit is contained in:
AlessandroSigna 2015-12-15 15:41:36 -08:00
parent 3e1e85aa18
commit 8e7a2ac536
2 changed files with 15 additions and 4 deletions

View file

@ -26,14 +26,16 @@
QString const Image3DOverlay::TYPE = "image3d"; QString const Image3DOverlay::TYPE = "image3d";
Image3DOverlay::Image3DOverlay() { Image3DOverlay::Image3DOverlay() {
_isLoaded = false; _isLoaded = false;
_emmisive = false;
} }
Image3DOverlay::Image3DOverlay(const Image3DOverlay* image3DOverlay) : Image3DOverlay::Image3DOverlay(const Image3DOverlay* image3DOverlay) :
Billboard3DOverlay(image3DOverlay), Billboard3DOverlay(image3DOverlay),
_url(image3DOverlay->_url), _url(image3DOverlay->_url),
_texture(image3DOverlay->_texture), _texture(image3DOverlay->_texture),
_fromImage(image3DOverlay->_fromImage) _fromImage(image3DOverlay->_fromImage),
_emmisive(image3DOverlay->_emmisive)
{ {
} }
@ -93,8 +95,8 @@ void Image3DOverlay::render(RenderArgs* args) {
batch->setModelTransform(transform); batch->setModelTransform(transform);
batch->setResourceTexture(0, _texture->getGPUTexture()); batch->setResourceTexture(0, _texture->getGPUTexture());
DependencyManager::get<DeferredLightingEffect>()->bindSimpleProgram(*batch, true, false, false, true); DependencyManager::get<DeferredLightingEffect>()->bindSimpleProgram(*batch, true, false, _emmisive, true);
DependencyManager::get<GeometryCache>()->renderQuad( DependencyManager::get<GeometryCache>()->renderQuad(
*batch, topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, *batch, topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight,
glm::vec4(color.red / MAX_COLOR, color.green / MAX_COLOR, color.blue / MAX_COLOR, alpha) glm::vec4(color.red / MAX_COLOR, color.green / MAX_COLOR, color.blue / MAX_COLOR, alpha)
@ -144,6 +146,11 @@ void Image3DOverlay::setProperties(const QScriptValue &properties) {
setClipFromSource(subImageRect); setClipFromSource(subImageRect);
} }
} }
QScriptValue emmisiveValue = properties.property("emmisive");
if (emmisiveValue.isValid()) {
_emmisive = emmisiveValue.toBool();
}
} }
QScriptValue Image3DOverlay::getProperty(const QString& property) { QScriptValue Image3DOverlay::getProperty(const QString& property) {
@ -156,6 +163,9 @@ QScriptValue Image3DOverlay::getProperty(const QString& property) {
if (property == "offsetPosition") { if (property == "offsetPosition") {
return vec3toScriptValue(_scriptEngine, getOffsetPosition()); return vec3toScriptValue(_scriptEngine, getOffsetPosition());
} }
if (property == "emmisive") {
return _emmisive;
}
return Billboard3DOverlay::getProperty(property); return Billboard3DOverlay::getProperty(property);
} }

View file

@ -46,6 +46,7 @@ public:
private: private:
QString _url; QString _url;
NetworkTexturePointer _texture; NetworkTexturePointer _texture;
bool _emmisive;
QRect _fromImage; // where from in the image to sample QRect _fromImage; // where from in the image to sample
}; };