Skip to content

Switched from luabind to luaponte #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion BambooEngine/include/RenderNodes/IRenderNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,6 @@ class Bamboo::IRenderNode
/*! \name Internal helper methods */
//@{
void ItlSendTransformMatrices(); ///<internal helper function which sends the current transormation matrices to the shader
void ItlSendLightPosition();

inline void ItlPushFBO(GLuint nFBO) { s_snBoundFBOs.push(nFBO); }
inline void ItlPopFBO() { s_snBoundFBOs.pop(); }
Expand Down
1 change: 1 addition & 0 deletions BambooEngine/include/RenderNodes/RenderNode_Camera.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class Bamboo::RN_Camera : public Bamboo::IRenderNode
{
public:
RN_Camera(Bamboo::ICamera *pCamera, bool bSetMatrices=true);
~RN_Camera();

/*! \name Operations */
//@{
Expand Down
2 changes: 1 addition & 1 deletion BambooEngine/include/RenderNodes/RenderNode_Generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Bamboo::RN_Generic : public Bamboo::IRenderNode
virtual ~RN_Generic();
//@}

void SetEnvironmentMap(GLuint nTextureID);
void SetEnvironmentMapping(bool bEnabled, GLuint nTextureID = 0);

protected:

Expand Down
2 changes: 1 addition & 1 deletion BambooEngine/src/AssimpWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ std::shared_ptr<GeometryData::GenericObject> AssimpWrapper::LoadModel(std::strin
aiProcess_CalcTangentSpace |
aiProcess_ValidateDataStructure |
aiProcess_Triangulate |
aiProcess_PreTransformVertices |
// aiProcess_PreTransformVertices |
//aiProcess_JoinIdenticalVertices |
aiProcess_GenSmoothNormals |
aiProcess_ImproveCacheLocality |
Expand Down
18 changes: 15 additions & 3 deletions BambooEngine/src/DeferredNodeTranslator/LoadedModel_RuleObject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,32 @@ void DeferredNodeTranslator::LoadedModel_RuleObject::Action()
// add rendering nodes, if environment mapping is activated but not handled yet
if (!m_spCubemapDeferredNode && m_spSemNode->GetEnvironmentMapping())
{
m_spCubemapCamera = Bamboo::PerspectiveCamera::Create(90.0f, 1.0f, 0.01f, 100.0f, glm::vec3(), 0.0f, 0.0f);
m_spCubemapCamera = Bamboo::PerspectiveCamera::Create(90.0f, 1.0f, 0.001f, 100.0f, glm::vec3(), 0.0f, 0.0f);

m_spCubemapCameraNode = std::shared_ptr<Bamboo::RN_Camera> (new Bamboo::RN_Camera(m_spCubemapCamera.get()));

m_spCubemapDeferredNode = std::shared_ptr<Bamboo::RN_Deferred> (new Bamboo::RN_Deferred(256, 256, true));
m_spCubemapDeferredNode = std::shared_ptr<Bamboo::RN_Deferred> (new Bamboo::RN_Deferred(128, 128, true));

m_spCubemapCameraNode->AddChild(m_spCubemapDeferredNode);

GLuint nDeferredAlbedoTexture = m_spCubemapDeferredNode->GetAlbedoTexture();
m_spCorrespondingRenderingNode->SetEnvironmentMap(nDeferredAlbedoTexture);
m_spCorrespondingRenderingNode->SetEnvironmentMapping(true, nDeferredAlbedoTexture);

m_pTranslator->m_spRootNode->AddChild(m_spCubemapCameraNode);
}

// remove rendering nodes, if environment mapping is deactivated but notes created
if (m_spCubemapDeferredNode && !m_spSemNode->GetEnvironmentMapping())
{
m_pTranslator->m_spRootNode->RemoveChild(m_spCubemapCameraNode);

m_spCubemapCamera.reset();
m_spCubemapCameraNode.reset();
m_spCubemapDeferredNode.reset();

m_spCorrespondingRenderingNode->SetEnvironmentMapping(false, 0);
}

if (m_spCubemapDeferredNode)
{
glm::mat4 mTrans = m_spSemNode->GetTransformMatrix();
Expand Down
4 changes: 3 additions & 1 deletion BambooEngine/src/RenderNode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Bamboo::IRenderNode::IRenderNode()

Bamboo::IRenderNode::~IRenderNode()
{

ClearChilds();
}


Expand Down Expand Up @@ -157,6 +157,8 @@ bool Bamboo::IRenderNode::RemoveChild(std::shared_ptr<Bamboo::IRenderNode> spNod

break;
}

iterator++;
}


Expand Down
7 changes: 6 additions & 1 deletion BambooEngine/src/RenderNodes/RenderNode_Camera.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,12 @@ Bamboo::RN_Camera::RN_Camera(Bamboo::ICamera * pCamera, bool bSetMatrices)
if (error != GL_NO_ERROR)
Logger::error() << "glGetError: " << TranslateGLerror(error) << Logger::endl;

Logger::debug() << "SceneObject_Camera created" << Logger::endl;
Logger::debug() << "RN_Camera created" << Logger::endl;
}

Bamboo::RN_Camera::~RN_Camera()
{
Logger::debug() << "RN_Camera destroyed" << Logger::endl;
}

void Bamboo::RN_Camera::Render(std::shared_ptr<TItlRenderInfo> pCurrentRenderInfo)
Expand Down
11 changes: 6 additions & 5 deletions BambooEngine/src/RenderNodes/RenderNode_Deferred.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@ Bamboo::RN_Deferred::RN_Deferred(unsigned int nWidth, unsigned int nHeight, bool
ItlCreateFBO();

m_bLayeredFBO = bLayered;

Logger::debug() << "RN_Deferred created" << Logger::endl;
}

Bamboo::RN_Deferred::~RN_Deferred()
{
ItlDeleteFBO();

Logger::debug() << "RN_Deferred destroyed" << Logger::endl;
}

void Bamboo::RN_Deferred::ItlCreateFBO()
Expand Down Expand Up @@ -387,9 +391,6 @@ void Bamboo::RN_Deferred::ItlPreRender()

void Bamboo::RN_Deferred::ItlRender()
{
double test[3];
// glVertex3dv(test);

if (m_bLayeredFBO == false)
{
glBindFramebuffer(GL_FRAMEBUFFER, m_nFBO);
Expand Down Expand Up @@ -489,12 +490,12 @@ void Bamboo::RN_Deferred::ItlRender()
}
else
{
static bool bAlreadyPrinted = false;
/*static bool bAlreadyPrinted = false;
if (bAlreadyPrinted == false)
{
Logger::debug() << "Texture id of cube map: " << m_nAlbedoDrawBuffer << Logger::endl;
bAlreadyPrinted = true;
}
}*/
}


Expand Down
6 changes: 4 additions & 2 deletions BambooEngine/src/RenderNodes/RenderNode_FBO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ Bamboo::RN_FBO::RN_FBO(int iWidth,
if(status != GL_FRAMEBUFFER_COMPLETE)
Logger::fatal() << "Failed to initialize FBO" << Logger::endl;
else
Logger::debug() << "Initialized FBO" << Logger::endl;
Logger::debug() << "RN_FBO created, initialized FBO" << Logger::endl;

//unbind framebuffer
glBindFramebuffer(GL_FRAMEBUFFER, 0);
Expand Down Expand Up @@ -226,7 +226,7 @@ Bamboo::RN_FBO::RN_FBO(int iWidth,
if(status != GL_FRAMEBUFFER_COMPLETE)
Logger::fatal() << "Failed to initialize FBO" << Logger::endl;
else
Logger::debug() << "Initialized FBO" << Logger::endl;
Logger::debug() << "RN_FBO created, initialized FBO" << Logger::endl;

//release used texture unit
pTextureManager->ReleaseUnit(textureUnit);
Expand All @@ -252,6 +252,8 @@ Bamboo::RN_FBO::~RN_FBO()

//finally, delete the used fbo
glDeleteFramebuffers(1, &m_nFramebuffer);

Logger::debug() << "RN_FBO destroyed" << Logger::endl;
}

/*!
Expand Down
15 changes: 9 additions & 6 deletions BambooEngine/src/RenderNodes/RenderNode_Generic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,21 @@ Bamboo::RN_Generic::RN_Generic(std::shared_ptr<GeometryData::GenericObject> spOb
ItlLoadShader();
ItlPrepareGLBuffers();
ItlPrepareTextures();

Logger::debug() << "RN_Generic created" << Logger::endl;
}

Bamboo::RN_Generic::~RN_Generic()
{
ItlDeleteBuffers();
ItlDeleteTextures();

Logger::debug() << "RN_Generic destroyed" << Logger::endl;
}

void Bamboo::RN_Generic::SetEnvironmentMap(GLuint nTextureID)
void Bamboo::RN_Generic::SetEnvironmentMapping(bool bEnabled, GLuint nTextureID /* = 0*/)
{
m_bUseEnvironmentMapping = true;
m_bUseEnvironmentMapping = bEnabled;
m_nEnvironmentMap = nTextureID;
}

Expand All @@ -62,9 +66,7 @@ void Bamboo::RN_Generic::ItlRender()


GLint iLocationIsSphere = pShaderManager->GetUniform("bIsSphere");
GLuint iTextureUnitForCubeMap = 15;//pTextureManager->RequestFreeUnit();

// std::cout << iTextureUnitForCubeMap << std::endl;
GLuint iTextureUnitForCubeMap = pTextureManager->RequestFreeUnit();

if (iLocationIsSphere != -1)
{
Expand Down Expand Up @@ -124,9 +126,10 @@ void Bamboo::RN_Generic::ItlRender()
for (unsigned int i=0; i < vUsedTextures.size(); i++)
pTextureManager->UnuseTexture(vUsedTextures[i]);

//pTextureManager->ReleaseUnit(iTextureUnitForCubeMap);
vUsedTextures.clear();
}

pTextureManager->ReleaseUnit(iTextureUnitForCubeMap);
}


Expand Down
4 changes: 2 additions & 2 deletions BambooEngine/src/RenderNodes/RenderNode_PostEffect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ Bamboo::RN_PostEffect::RN_PostEffect(std::string sShaderToUse)
// prepare the vertex array object
ItlPrepareVAO();

Logger::debug() << "SceneObject_PostEffect created" << Logger::endl;
Logger::debug() << "RN_PostEffect created" << Logger::endl;
}

Bamboo::RN_PostEffect::~RN_PostEffect()
{

Logger::debug() << "RN_PostEffect destroyed" << Logger::endl;
}

void Bamboo::RN_PostEffect::ItlPreRender()
Expand Down
2 changes: 2 additions & 0 deletions BambooEngine/src/RenderNodes/RenderNode_SpotLight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ Bamboo::RN_SpotLight::~RN_SpotLight()
{
glDeleteFramebuffers(1, &m_nFBO);
glDeleteTextures(1, &m_nDepthTexture);

Logger::debug() << "RN_SpotLight destroyed" << Logger::endl;
}

void Bamboo::RN_SpotLight::ItlCreateVBO()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Bamboo::RN_SpotLight_Model::RN_SpotLight_Model(glm::vec3 vPosition,

Bamboo::RN_SpotLight_Model::~RN_SpotLight_Model()
{

Logger::debug() << "RN_SpotLight_Model destroyed" << Logger::endl;
}

void Bamboo::RN_SpotLight_Model::ItlCreateVBO()
Expand Down
25 changes: 16 additions & 9 deletions BambooEngine/src/TextureManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,20 +60,14 @@ void Bamboo::TextureManager::TImpl::ItlInitialize()
{
ilInit();

stringstream puffer; //for debugging output
string puffer2; //for debugging output

glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &m_iNumTextureUnits); //ask opengl how many texture units are available

puffer << m_iNumTextureUnits; //for debugging output, transform integer to string, read integer in stringstream
puffer >> puffer2; //for debugging output, transform integer to string, write stringstream to string

//m_iNumTextureUnits = 32;

m_iNumTextureUnits = 14;
for (int a=0; a < m_iNumTextureUnits; a++) //push them all in the free_units queue
m_lFreeUnits.push_back(a);

Logger::debug() << puffer2 << " texture units available" << Logger::endl;
Logger::debug() << m_iNumTextureUnits << " texture units available" << Logger::endl;

m_bDevIL_Initialized = true;

Expand Down Expand Up @@ -148,7 +142,6 @@ GLuint Bamboo::TextureManager::UseTexture(GLuint nTextureID)
m_pImpl->m_mLastBindedTextures[nFreeUnit] = nTextureID;
}


return nFreeUnit;
}

Expand Down Expand Up @@ -186,6 +179,8 @@ GLuint Bamboo::TextureManager::RequestFreeUnit()
if (m_pImpl->m_bDevIL_Initialized == false)
m_pImpl->ItlInitialize();

assert (m_pImpl->m_lFreeUnits.empty() == false);

GLuint nFreeUnit = m_pImpl->m_lFreeUnits.front(); //get first free unit

m_pImpl->m_lFreeUnits.pop_front(); //remove unit from free_units queue
Expand All @@ -195,6 +190,18 @@ GLuint Bamboo::TextureManager::RequestFreeUnit()

void Bamboo::TextureManager::ReleaseUnit(GLuint nUnit)
{
#ifdef DEBUG
bool bOk = true;
for (auto iter = m_pImpl->m_lFreeUnits.begin(); iter != m_pImpl->m_lFreeUnits.end() && bOk; iter++)
{
bOk &= (*iter != nUnit);
}

if (!bOk)
Logger::fatal() << "Texture unit " << nUnit << " is released without being locked (double release?)" << Logger::endl;

#endif

m_pImpl->m_lFreeUnits.push_back(nUnit);
}

Expand Down
Loading