/*! * Set new object type after create * /param newobject - new md object * \return error code */ ERR_Code aObject::setObject( aCfgItem newobject ) { setInited( false ); obj = newobject; return init(); }
ERR_Code aDocJournal::initObject() { ERR_Code err = err_noerror; aCfgItem mditem, docitem, header; journalType=0; setInited( true ); md = 0; if ( db ) md = &db->cfg; if(!md) { aLog::print(aLog::Error, tr("aDocJournal md object not exists")); return err_objnotfound; } // aObject::initObject(); journalType= md->attr(obj,mda_type).toInt(); if (journalType) { mditem= md->find(obj,md_fieldid); if (mditem.isNull()) { aLog::print(aLog::Error, tr("aDocJournal columns not defined")); return err; } else { aLog::print(aLog::Debug, tr("aDocJournal column defined")); } docitem= md->parent( md->parent( md->find(md->text(mditem).toLong()))); header = md->find( docitem, md_header ); if(header.isNull()) aLog::print(aLog::Error, tr("aDocJournal invalid column define")); //table for special journal err = tableInsert( aDatabase::tableDbName( *md, header ), header ); // printf("table name is %s\n", aDatabase::tableDbName( *md, header ).ascii()); } else { //table for common journal err = tableInsert( "a_journ" ); } return err; }
/*! * Init object after create. * Need setObject( id ), where id - if of the metadata object of the adb->cfg loaded Configuration. * \return error code */ ERR_Code aObject::initObject() { aCfgItem fg, f; QString tname; setInited( true ); // db = adb; md = 0; if ( db ) md = &db->cfg; else { aLog::print(aLog::Error, tr("aObject have no database!")); return err_nodatabase; } if ( obj.isNull() ) { aLog::print(aLog::Error, tr("aObject md object not found")); return err_objnotfound; } return err_noerror; }
void DrawPassGL::init( const PassDesc &desc ) { if( isInited() ) return; setInited( true ); _desc = desc; N = desc._buffer_count; glGenFramebuffers( 1 , &_framebuffer_id ); glBindFramebuffer( GL_FRAMEBUFFER , _framebuffer_id ); int _gl_type; int _gl_store; int _gl_depth; int _gl_format; switch( desc._store_type ) { case BufferStoreType::BUFFER_BYTE: { switch( desc._component_number ) { case 1: { _gl_type = GL_R8; _gl_format = GL_R; _gl_store = GL_UNSIGNED_BYTE; } break; case 2: { _gl_type = GL_RG8; _gl_format = GL_RG; _gl_store = GL_UNSIGNED_BYTE; } break; case 3: { _gl_type = GL_RGB8; _gl_format = GL_RGB; _gl_store = GL_UNSIGNED_BYTE; } break; case 4: { _gl_type = GL_RGBA8; _gl_format = GL_RGBA; _gl_store = GL_UNSIGNED_BYTE; } break; } _gl_depth = GL_DEPTH_COMPONENT16; } break; case BufferStoreType::BUFFER_FLOAT: { switch( desc._component_number ) { case 1: { _gl_format = GL_R; _gl_type = GL_R32F; _gl_store = GL_FLOAT; } break; case 2: { _gl_format = GL_RG; _gl_type = GL_RG32F; _gl_store = GL_FLOAT; } break; case 3: { _gl_format = GL_RGB; _gl_type = GL_RGB32F; _gl_store = GL_FLOAT; } break; case 4: { _gl_format = GL_RGBA; _gl_type = GL_RGBA32F; _gl_store = GL_FLOAT; } break; } _gl_depth = GL_DEPTH_COMPONENT32F; } break; case BufferStoreType::BUFFER_INT: { switch( desc._component_number ) { case 1: { _gl_type = GL_R32UI; _gl_store = GL_UNSIGNED_INT; _gl_format = GL_RED_INTEGER; } break; case 2: { _gl_type = GL_RG32UI; _gl_store = GL_UNSIGNED_INT; _gl_format = GL_RG_INTEGER; } break; case 3: { _gl_type = GL_RGB32UI; _gl_store = GL_UNSIGNED_INT; _gl_format = GL_RGB_INTEGER; } break; case 4: { _gl_type = GL_RGBA32UI; _gl_store = GL_UNSIGNED_INT; _gl_format = GL_RGBA_INTEGER; } break; } _gl_depth = GL_DEPTH_COMPONENT32F; } break; } if( N > 0 ) { std::unique_ptr< GLenum[] > DrawBuffers( new GLenum[ N ] ); for( int i = 0; i < N; i++ ) DrawBuffers[ i ] = GL_COLOR_ATTACHMENT0 + i; glDrawBuffers( N , DrawBuffers.get() ); __texture_pointer_array = std::move( std::unique_ptr< uint[] >( new uint[ N ] ) ); glGenTextures( N , __texture_pointer_array.get() ); ito( N ) { if( desc._cubemap ) { glBindTexture( GL_TEXTURE_CUBE_MAP , __texture_pointer_array[ i ] ); glTexParameterf( GL_TEXTURE_CUBE_MAP , GL_TEXTURE_MIN_FILTER , GL_LINEAR ); glTexParameterf( GL_TEXTURE_CUBE_MAP , GL_TEXTURE_MAG_FILTER , GL_LINEAR ); glTexParameterf( GL_TEXTURE_CUBE_MAP , GL_TEXTURE_WRAP_S , GL_CLAMP_TO_EDGE ); glTexParameterf( GL_TEXTURE_CUBE_MAP , GL_TEXTURE_WRAP_T , GL_CLAMP_TO_EDGE ); glTexParameterf( GL_TEXTURE_CUBE_MAP , GL_TEXTURE_WRAP_R , GL_CLAMP_TO_EDGE ); for( int j = 0; j < 6; j++ ) { glTexImage2D( GL_TEXTURE_CUBE_MAP_POSITIVE_X + j , 0 , _gl_type , _desc._size._w , _desc._size._h , 0 , _gl_format , _gl_store , 0 ); } ///glFramebufferTexture( GL_FAMEBUFFE , GL_COLO_ATTACHMENT0 + i , __texture_pointer_array[i] , 0 ); glFramebufferTexture2D( GL_FRAMEBUFFER , GL_COLOR_ATTACHMENT0 + i , GL_TEXTURE_CUBE_MAP_POSITIVE_X , __texture_pointer_array[ i ] , 0 ); } else { glBindTexture( GL_TEXTURE_2D , __texture_pointer_array[ i ] ); glTexImage2D( GL_TEXTURE_2D , 0 , _gl_type , _desc._size._w , _desc._size._h , 0 , _gl_format , _gl_store , 0 ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER , GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_WRAP_S , GL_CLAMP_TO_EDGE ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_WRAP_T , GL_CLAMP_TO_EDGE ); glFramebufferTexture2D( GL_FRAMEBUFFER , GL_COLOR_ATTACHMENT0 + i , GL_TEXTURE_2D , __texture_pointer_array[ i ] , 0 ); } } }
/*! *\~english * Create wDocument object. *\~russian * Создает объект wDocument. *\~ *\param - \~english \~russian \~ *\param - \~english \~russian \~ */ wDocument::wDocument( QWidget *parent, Qt::WFlags fl ) :aWidget( parent, "wDocument", fl ) { setInited( false ); }