示例#1
0
void Texture::processFlags()
{
	if( mFlags & SendToGPU )
	{
		glEnable( GL_TEXTURE_2D );

		glGenTextures( 1, &mGL_TexID );
		
		glBindTexture( GL_TEXTURE_2D, mGL_TexID );

		GLenum format;
		if( mBitmap->flags() & Channels1 )
			format = GL_LUMINANCE;
		else if( mBitmap->flags() & Channels2 )
			format = GL_LUMINANCE_ALPHA;
		else if( mBitmap->flags() & Channels3 )
			format = GL_RGB;
		else if( mBitmap->flags() & Channels4 )
			format = GL_RGBA;

		int bytesPerPixel = getPixelBytes();
		for ( unsigned int i = 0; i < mBitmap->mipmaps(); i++ )
		{
			glTexImage2D(GL_TEXTURE_2D,
						i,
						bytesPerPixel,
						mBitmap->width(i), mBitmap->height(i),
						0,
						format,
						GL_UNSIGNED_BYTE,
						mBitmap->getBytes(i));
		}

		// set wrap mode
		if( mFlags & Wrap )
		{
			glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
			glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
		}
		else
		{
			glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE_EXT );
			glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE_EXT );
		}

		resetFiltering();

		glDisable( GL_TEXTURE_2D );

		mFlags |= SentGPU;
	}
}
示例#2
0
文件: itemuser.cpp 项目: g-LuL/cgru
void ItemUser::setFilterType( int i_type )
{
	resetFiltering();

	switch( i_type )
	{
		case CtrlSortFilter::TNONE:
			break;
		case CtrlSortFilter::TNAME:
			m_filter_str = afqt::qtos( m_name);
			break;
		case CtrlSortFilter::THOSTNAME:
			m_filter_str = afqt::qtos( hostname);
			break;
		default:
			AF_ERR << "Invalid type number = " << i_type;
	}
}
示例#3
0
bool ItemUser::setFilterType( int type )
{
   resetFiltering();
   switch( type )
   {
      case CtrlSortFilter::TNONE:
         return false;
      case CtrlSortFilter::TNAME:
         filter_str = name;
         break;
      case CtrlSortFilter::THOSTNAME:
         filter_str = hostname;
         break;
      default:
         AFERRAR("ItemUser::setFilterType: Invalid type number = %d", type)
         return false;
   }
   return true;
}
示例#4
0
文件: itemmonitor.cpp 项目: CGRU/cgru
void ItemMonitor::setFilterType( int i_type )
{
    resetFiltering();

    switch( i_type )
    {
    case CtrlSortFilter::TNONE:
        break;
    case CtrlSortFilter::TNAME:
        m_filter_str = afqt::qtos( m_name);
        break;
    case CtrlSortFilter::TENGINE:
        m_filter_str = afqt::qtos( engine);
        break;
    case CtrlSortFilter::TADDRESS:
        m_filter_str = afqt::qtos( address_str);
        break;
    default:
        AF_ERR << "Invalid type number = " << i_type;
    }
}