Texture::Texture(unsigned int p_width, unsigned int p_height, Texture::InternalFormat::Enum p_format): m_texture(generateTextureId()), m_width(p_width), m_height(p_height) { setFilterMode(FilterMode::Point); setWrapMode(WrapMode::ClampToEdge); texImage2D(p_format, p_width, p_height, NULL); }
ScriptCompleter::ScriptCompleter() : QCompleter() , m_model(new QStandardItemModel) { setCompletionMode(QCompleter::PopupCompletion); setCaseSensitivity(Qt::CaseSensitive); setFilterMode(Qt::MatchStartsWith); setModel(m_model); }
bool RenderTextureOpenGL::createTexture(const Vector2& size, RenderTextureFormat format) { GLenum target = getTarget(); glBindTexture(target, getTextureId()); glTexImage2D(target, 0, RENDER_TEXTURE_FORMAT_MAP[format], (GLsizei)size.x, (GLsizei)size.y, 0, RENDER_TEXTURE_NRMFMT_MAP[format], GL_FLOAT, 0); glBindTexture(target, 0); setFilterMode(FM_POINT); setWrapMode(TWM_CLAMP); return true; }
//------------------------------------------------------------------------------ //## Basic TEST_F(Test_Shader_Shader, IndependentSamplerState) { auto shader1 = Shader::create(LN_ASSETFILE("Shader/IndependentSamplerState.fx")); auto vertexDecl1 = newObject<VertexLayout>(); vertexDecl1->addElement(0, VertexElementType::Float3, VertexElementUsage::Position, 0); vertexDecl1->addElement(0, VertexElementType::Float2, VertexElementUsage::TexCoord, 0); struct Vertex { Vector3 pos; Vector2 uv; }; Vertex v[] = { { { -1, 1, 0 }, { 0, 0 }, }, // 0.5 で中央の face からサンプリングする { { 0, 1, 0 }, { 1, 0 }, }, { { -1, 0, 0 }, { 0, 1 }, }, { { 0, 0, 0 }, { 1, 1 }, }, }; auto vb1 = newObject<VertexBuffer>(sizeof(v), v, GraphicsResourceUsage::Static); auto tex1 = newObject<Texture2D>(2, 2, TextureFormat::RGBA8); auto bmp1 = tex1->map(MapMode::Write); bmp1->setPixel32(0, 0, ColorI(255, 0, 0, 255)); bmp1->setPixel32(1, 0, ColorI(255, 0, 255, 255)); bmp1->setPixel32(0, 1, ColorI(0, 255, 0, 255)); bmp1->setPixel32(1, 1, ColorI(0, 0, 255, 255)); // TODO: まだ SamplerState 直接指定をサポートしていないので Texture に対してセットする方法でテストケースだけ用意しておく。 // 後でサポートするとき、shader1->findParameter("mySamplerState")->setSamplerState(samplerState); とかに書き換える。 auto samplerState = newObject<SamplerState>(); samplerState->setFilterMode(TextureFilterMode::Linear); tex1->setSamplerState(samplerState); shader1->findParameter("_Texture")->setTexture(tex1); auto ctx = Engine::graphicsContext(); TestEnv::resetGraphicsContext(ctx); ctx->setVertexLayout(vertexDecl1); ctx->setVertexBuffer(0, vb1); ctx->setIndexBuffer(nullptr); ctx->setShaderPass(shader1->techniques()[0]->passes()[0]); // * [ ] default { ctx->clear(ClearFlags::All, Color::White, 1.0f, 0); ctx->setPrimitiveTopology(PrimitiveTopology::TriangleStrip); ctx->drawPrimitive(0, 2); ASSERT_SCREEN(LN_ASSETFILE("Shader/Result/Test_Shader_Shader-IndependentSamplerState-1.png")); } }
Texture::Texture(unsigned int p_width, unsigned int p_height, unsigned char p_byte): m_texture(generateTextureId()), m_width(p_width), m_height(p_height) { unsigned char* data = new unsigned char[p_width * p_height* 4]; std::fill(data, data + p_width * p_height * 4, p_byte); setFilterMode(FilterMode::Point); setWrapMode(WrapMode::ClampToEdge); texImage2D(InternalFormat::RGBA8, p_width, p_height, data); delete[] data; }
WizMessageCompleter::WizMessageCompleter(QWidget *parent) : QCompleter(parent) { m_title = qobject_cast<QLineEdit*>(parent); Q_ASSERT(m_title); setCaseSensitivity(Qt::CaseInsensitive); setWrapAround(false); setCompletionColumn(0); setCompletionRole(Qt::EditRole); #if QT_VERSION >= 0x050200 setFilterMode(Qt::MatchContains); #endif connect(WizGlobal::instance(), SIGNAL(viewNoteLoaded(WizDocumentView*,const WIZDOCUMENTDATA&,bool)), SLOT(onNoteLoaded(WizDocumentView*,const WIZDOCUMENTDATA&,bool))); }
void QgsAttributeTableFilterModel::setFilteredFeatures( const QgsFeatureIds& ids ) { mFilteredFeatures = ids; setFilterMode( ShowFilteredList ); invalidateFilter(); }
bool D3D9texture::loadFile2D() { D3D9_SCOPELOCK; HRESULT hr; const byte_t* data; int flags = 0; if (!(m_initFlags.isSet(IF_NoMipmap))) flags |= Image::Mipmap; flags |= Image::ExpandAlpha; std::auto_ptr<Image> imagefile(new Image); if (!imagefile->loadFile(m_name, flags)) { // Debugf("D3D9texture::loadFile2D: can't find image file for %s\n", m_name.c_str()); return false; } m_width = imagefile->getWidth(); m_height = imagefile->getHeight(); // mDesc.format = imagefile->getFormat(); if (!Math::isPowerOfTwo(m_width) || !Math::isPowerOfTwo(m_height)) { // if (!(mDesc.flags & TexFlag_allowNPOT)) Errorf("GLtexture::loadFile2D: texture %s size isn't power of two", m_name.c_str()); // else // Debugf("GLtexture::loadFile2D: texture %s size isn't power of two\n", mDesc.name.c_str()); } m_format = imagefile->getFormat(); D3DFORMAT d3dformat; trTexFormat(imagefile->getFormat(), d3dformat); DWORD d3dusage = 0; int mipdown = image_mip->getInteger(); if (m_initFlags.isSet(IF_NoMipmap) || imagefile->getNumMipmapLevels() <= 1) { m_isMipmaped = false; mipdown = 0; } else { m_isMipmaped = true; mipdown = Math::clamp(mipdown, 0, imagefile->getNumMipmapLevels()-1); m_width >>= mipdown; m_height >>= mipdown; if (m_width < 1) m_width = 1; if (m_height < 1) m_height = 1; } // m_initFlags = 0; if (m_initFlags.isSet(Texture::IF_RenderTarget)) { Errorf("Can't load render target from a file"); } if (m_initFlags.isSet(Texture::IF_AutoGenMipmap)) { d3dusage |= D3DUSAGE_AUTOGENMIPMAP; m_isMipmaped = true; m_hardwareGenMipmap = checkIfSupportHardwareMipmapGeneration(d3dformat, d3dusage); if (!m_hardwareGenMipmap) { d3dusage &= ~D3DUSAGE_AUTOGENMIPMAP; } } if (m_object == 0) { V(d3d9Device->CreateTexture(m_width, m_height, !m_isMipmaped, d3dusage, d3dformat, D3DPOOL_MANAGED, &m_object, 0)); } int width, height; width = m_width; height = m_height; for (DWORD i = 0; i < m_object->GetLevelCount(); i++) { if (i + mipdown >= (DWORD)imagefile->getNumMipmapLevels()) { // if no image for this level, break break; } uint_t datasize = imagefile->getFormat().calculateDataSize(width, height); m_videoMemoryUsed += datasize; data = imagefile->getData(i + mipdown); #if 0 LPDIRECT3DSURFACE9 surface; V(m_object->GetSurfaceLevel(i, &surface)); D3DXLoadSurfaceFromMemory(surface, 0, 0, data, d3dformat, pitch, 0, rect, D3DX_FILTER_NONE, 0); #else D3DLOCKED_RECT lockedRect; V(m_object->LockRect(i, &lockedRect, 0, 0)); int mypitch = m_format.calculateDataSize(width, 1); if (mypitch != lockedRect.Pitch) { Errorf("mypitch != lockedRect.Pitch"); } memcpy(lockedRect.pBits, data, datasize); V(m_object->UnlockRect(i)); #endif width >>= 1; height >>= 1; if (width < 1) width = 1; if (height < 1) height = 1; if (m_initFlags.isSet(Texture::IF_AutoGenMipmap)) { // break; } } if (m_initFlags.isSet(Texture::IF_AutoGenMipmap)) { generateMipmap(); } if (m_isMipmaped) { setFilterMode(FM_Trilinear); } else { setFilterMode(FM_Linear); } setClampMode(CM_Repeat); setPrivateData(); g_statistic->addValue(stat_textureMemory, m_videoMemoryUsed); return true; }