Exemplo n.º 1
0
bool Cssao::Init(unsigned int WindowWidth, unsigned int WindowHeight){
	m_noiseScale[0] = WindowWidth / m_noise_size;
    m_noiseScale[1] = WindowHeight / m_noise_size;
	
	CreateKernel();
	CreateNoise();
	
	//Create FBO
	glGenFramebuffers(1, &m_fbo);
	glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_fbo);
	
	glGenTextures(1, &m_ssaoTexture);
	glBindTexture(GL_TEXTURE_2D, m_ssaoTexture);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, WindowWidth, WindowHeight, 0, GL_RGBA, GL_FLOAT, NULL);
	glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_ssaoTexture, 0);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
	
	GLenum DrawBuffers[] = {GL_COLOR_ATTACHMENT0};
	glDrawBuffers(1, DrawBuffers);
	
	GLenum Status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
	
	if(Status != GL_FRAMEBUFFER_COMPLETE){
		printf("FB error, status 0x%04x", Status);
		return false;
	}
	
	//Restore default framebuffer
	glBindFramebuffer(GL_FRAMEBUFFER, 0);
	
	return true;
}
Exemplo n.º 2
0
	bool  CUserCryptoManager::InitPasswordMode(CFilePage *pPage, const wchar_t *pszPassword)
	{

		IDBStoragePtr pDBStorage = m_pDB->getDBStorage();

		CRandomGenerator::GetRandomValues(m_szSalt, ___nSALT_SIZE);
		CRandomGenerator::GetRandomValues(m_szSaltIV, ___nSALT_SIZE);


		CommonLib::CString sPWD = pszPassword;

		std::vector<byte> vecUtf8PWD;

		uint32 nUtf8Len = sPWD.calcUTF8Length();
		vecUtf8PWD.resize(nUtf8Len + 1);
		sPWD.exportToUTF8((char*)&vecUtf8PWD[0], nUtf8Len);

		m_nOffset = CalcOffset(&vecUtf8PWD[0], nUtf8Len, m_szSalt, ___nSALT_SIZE);

		m_PageChiper.reset( new CPageCipher( m_qryptoAlg));
		m_pCheckPageChiper.reset(new CPageCipher(m_qryptoAlg));
		m_PageChiper->SetKey(&vecUtf8PWD[0], nUtf8Len, m_szSalt, m_szSaltIV, ___nSALT_SIZE);
		((CStorage*)pDBStorage.get())->setPageChiper(m_PageChiper.get());

		m_nPWDPage = CreateCheckPWDPage();
		CreateNoise(m_nOffset);


		CommonLib::FxMemoryWriteStream stream;
		stream.attachBuffer(pPage->getRowData(), pPage->getPageSize());
		sFilePageHeader header(stream, DATABASE_PAGE, DB_ROOT_USER_PAGE, pPage->getPageSize(),true);
		stream.write((uint16)m_UserMode);
		stream.write((uint16)m_qryptoAlg);
		stream.write(m_szSalt, ___nSALT_SIZE);
		stream.write(m_szSaltIV, ___nSALT_SIZE);
		stream.write(m_nPWDPage);
		header.writeCRC32(stream);

		pPage->setNeedEncrypt(false);
		pDBStorage->saveFilePage(pPage);

		pDBStorage->SetOffset(m_nOffset);
		m_bPWDCheck = true;
		return true;

	}
Exemplo n.º 3
0
	int64 CDatabase::InitCrypto(byte* pPWD, uint32 nLen)
	{

		CRandomGenerator::GetRandomValues(m_dbHeader.szSalt, sDBHeader::SALT_SIZE);
		CRandomGenerator::GetRandomValues(m_dbHeader.szSaltIV, sDBHeader::SALT_SIZE);

		int64 nOffset = CalcOffset(pPWD, nLen, m_dbHeader.szSalt, sDBHeader::SALT_SIZE);
	 


		m_PageChiper.reset( new CPageCipher(m_DBParams.qryptoAlg));
		m_PageChiper->SetKey(pPWD, nLen, m_dbHeader.szSalt, m_dbHeader.szSaltIV, sDBHeader::SALT_SIZE);
		((CStorage*)m_pStorage.get())->setPageChiper(m_PageChiper.get());
		CreateCheckPWDPage();
		CreateNoise(nOffset);


		return nOffset;
	
	}