void initialise(Ogre::RenderWindow* _window, Ogre::SceneManager* _scene) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mColorBlendMode.blendType = Ogre::LBT_COLOUR; mColorBlendMode.source1 = Ogre::LBS_TEXTURE; mColorBlendMode.source2 = Ogre::LBS_DIFFUSE; mColorBlendMode.operation = Ogre::LBX_MODULATE; mAlphaBlendMode.blendType = Ogre::LBT_ALPHA; mAlphaBlendMode.source1 = Ogre::LBS_TEXTURE; mAlphaBlendMode.source2 = Ogre::LBS_DIFFUSE; mAlphaBlendMode.operation = Ogre::LBX_MODULATE; mTextureAddressMode.u = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.v = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.w = Ogre::TextureUnitState::TAM_CLAMP; mSceneManager = nullptr; mWindow = nullptr; mUpdate = false; mRenderSystem = nullptr; mActiveViewport = 0; Ogre::Root* root = Ogre::Root::getSingletonPtr(); if (root != nullptr) setRenderSystem(root->getRenderSystem()); setRenderWindow(_window); setSceneManager(_scene); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void Cocos2dRenderManager::initialise() { CCDirector *pDirector = CCDirector::sharedDirector(); MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); CCSize s = pDirector->getWinSizeInPixels(); this->setPosition(0, 0); this->setContentSize(s); setViewSize(int(s.width), int(s.height)); // 绑定到cocos2d节点 pDirector->setNotificationNode(this); mInfo.pixWidth = s.width; mInfo.pixHeight = s.height; mVertexFormat = VertexColourType::ColourABGR; mUpdate = true; kmMat4 tmp; kmGLGetMatrix(KM_GL_PROJECTION, &tmp); kmMat4Inverse(&mMatrix, &tmp); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(Cocos2dRenderManager::listenForeToBackground), EVENT_COME_TO_BACKGROUND, NULL); pDirector->getScheduler()->scheduleUpdateForTarget(this, kCCPriorityNonSystemMin, false); }
const std::string& ExportDataManager::getDataPath(const std::string& _name) { static std::string path; VectorString result; common::VectorWString wresult; for (VectorArhivInfo::const_iterator item = mPaths.begin(); item != mPaths.end(); ++item) { common::scanFolder(wresult, (*item).name, (*item).recursive, MyGUI::UString(_name).asWStr(), true); } for (common::VectorWString::const_iterator item = wresult.begin(); item != wresult.end(); ++item) { result.push_back(MyGUI::UString(*item).asUTF8()); } if (!result.empty()) { path = result[0]; if (result.size() > 1) { MYGUI_PLATFORM_LOG(Warning, "There are several files with name '" << _name << "'. '" << path << "' was used."); MYGUI_PLATFORM_LOG(Warning, "Other candidater are:"); for (size_t index = 1; index < result.size(); index ++) MYGUI_PLATFORM_LOG(Warning, " - '" << result[index] << "'"); } } return path; }
void DirectXRenderManager::initialise(IDirect3DDevice9* _device) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mpD3DDevice = _device; mVertexFormat = VertexColourType::ColourARGB; memset(&mInfo, 0, sizeof(mInfo)); if (mpD3DDevice != nullptr) { D3DVIEWPORT9 vp; mpD3DDevice->GetViewport(&vp); setViewSize(vp.Width, vp.Height); } mUpdate = false; if (mpD3DDevice != nullptr) { D3DCAPS9 caps; mpD3DDevice->GetDeviceCaps(&caps); if (caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY) { MYGUI_PLATFORM_LOG(Warning, "Non-squared textures not supported."); } } MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void MGUI_RenderSystem::initialise() { d_assert (!mIsInitialise); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mVertexFormat = MyGUI::VertexColourType::ColourARGB; memset(&mInfo, 0, sizeof(mInfo)); setViewSize(Engine::Instance()->GetDeviceProperty()->Width, Engine::Instance()->GetDeviceProperty()->Height); mUpdate = false; mShaderLib = ShaderLibManager::Instance()->LoadShaderLib("Shaders\\MGUI.ShaderLib", "Shaders\\MGUI.ShaderLib"); d_assert (mShaderLib); mDefaultTech = mShaderLib->GetTechnique("MGUI_Default"); d_assert (mDefaultTech); mVertexDecl = VideoBufferManager::Instance()->CreateVertexDeclaration(); mVertexDecl->AddElement(0, 0, DT_FLOAT3, DU_POSITION, 0); mVertexDecl->AddElement(0, 12, DT_COLOR, DU_COLOR, 0); mVertexDecl->AddElement(0, 16, DT_FLOAT2, DU_TEXCOORD, 0); mVertexDecl->Init(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void DirectX11DataManager::initialise() { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void DirectX11DataManager::shutdown() { MYGUI_PLATFORM_ASSERT(mIsInitialise, getClassTypeName() << " is not initialised"); MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); mIsInitialise = false; }
void initialise(Ogre::RenderWindow* _window, Ogre::SceneManager* _scene) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mColorBlendMode.blendType = Ogre::LBT_COLOUR; mColorBlendMode.source1 = Ogre::LBS_TEXTURE; mColorBlendMode.source2 = Ogre::LBS_DIFFUSE; mColorBlendMode.operation = Ogre::LBX_MODULATE; mAlphaBlendMode.blendType = Ogre::LBT_ALPHA; mAlphaBlendMode.source1 = Ogre::LBS_TEXTURE; mAlphaBlendMode.source2 = Ogre::LBS_DIFFUSE; mAlphaBlendMode.operation = Ogre::LBX_MODULATE; mTextureAddressMode.u = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.v = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.w = Ogre::TextureUnitState::TAM_CLAMP; mSceneManager = nullptr; mWindow = nullptr; mUpdate = false; mRenderSystem = nullptr; mActiveViewport = 0; Ogre::Root* root = Ogre::Root::getSingletonPtr(); if (root != nullptr) setRenderSystem(root->getRenderSystem()); setRenderWindow(_window); setSceneManager(_scene); // ADDED sh::MaterialInstance* mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/NoTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/NoTexture", "Default"); mVertexProgramNoTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getVertexProgram()->_getBindingDelegate(); mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/OneTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/OneTexture", "Default"); mVertexProgramOneTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getVertexProgram()->_getBindingDelegate(); mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/NoTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/NoTexture", "Default"); mFragmentProgramNoTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getFragmentProgram()->_getBindingDelegate(); mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/OneTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/OneTexture", "Default"); mFragmentProgramOneTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getFragmentProgram()->_getBindingDelegate(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void OpenGLRenderManager::shutdown() { MYGUI_PLATFORM_ASSERT(mIsInitialise, getClassTypeName() << " is not initialised"); MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); destroyAllResources(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); mIsInitialise = false; }
void DirectXRenderManager::shutdown() { if (false == mIsInitialise) return; MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << INSTANCE_TYPE_NAME); destroyAllResources(); mpD3DDevice = nullptr; MYGUI_PLATFORM_LOG(Info, INSTANCE_TYPE_NAME << " successfully shutdown"); mIsInitialise = false; }
void MGUI_RenderSystem::shutdown() { d_assert (mIsInitialise); MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); mVertexDecl = NULL; destroyAllResources(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); mIsInitialise = false; }
void shutdown() { MYGUI_PLATFORM_ASSERT(mIsInitialise, getClassTypeName() << " is not initialised"); MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); destroyAllResources(); setSceneManager(nullptr); setRenderWindow(nullptr); setRenderSystem(nullptr); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); mIsInitialise = false; }
void Ogre2DataManager::initialise(const std::string& _group) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mGroup = _group; if (mGroup == Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME) mAllGroups = true; else mAllGroups = false; MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void OgreTexture::loadFromFile(const std::string& _filename) { setUsage(TextureUsage::Default); Ogre::TextureManager* manager = Ogre::TextureManager::getSingletonPtr(); if ( !manager->resourceExists(_filename) ) { DataManager& resourcer = DataManager::getInstance(); if (!resourcer.isDataExist(_filename)) { MYGUI_PLATFORM_LOG(Error, "Texture '" + _filename + "' not found, set default texture"); } else { mTexture = manager->load(_filename, mGroup, Ogre::TEX_TYPE_2D, 0); } } else { mTexture = manager->getByName(_filename); } setFormatByOgreTexture(); }
Vertex* OpenGLESVertexBuffer::lock() { MYGUI_PLATFORM_ASSERT(mBufferID, "Vertex buffer in not created"); // Use glMapBuffer //glBindBufferARB(GL_ARRAY_BUFFER_ARB, mBufferID); glBindBuffer(GL_ARRAY_BUFFER, mBufferID); //CHECK_GL_ERROR_DEBUG(); GLenum __error = glGetError(); if(__error) { MYGUI_PLATFORM_LOG(Info, "OpenGL error " << __error << " in " << __FILE__<< " " << __FUNCTION__<< " "<< __LINE__); } assert(__error==0); // Discard the buffer //glBufferDataARB(GL_ARRAY_BUFFER_ARB, mSizeInBytes, 0, GL_STREAM_DRAW_ARB); glBufferData(GL_ARRAY_BUFFER, mSizeInBytes, 0, GL_STREAM_DRAW); CHECK_GL_ERROR_DEBUG(); Vertex* pBuffer = (Vertex*)glMapBufferOES(GL_ARRAY_BUFFER, GL_WRITE_ONLY_OES); CHECK_GL_ERROR_DEBUG(); MYGUI_PLATFORM_ASSERT(pBuffer, "Error lock vertex buffer"); glBindBuffer(GL_ARRAY_BUFFER, 0); CHECK_GL_ERROR_DEBUG(); return pBuffer; }
void OpenGLRenderManager::initialise(OpenGLImageLoader* _loader) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mVertexFormat = VertexColourType::ColourABGR; mUpdate = false; mImageLoader = _loader; glewInit(); mPboIsSupported = glewIsExtensionSupported("GL_EXT_pixel_buffer_object") != 0; MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void DirectXRenderManager::deviceLost() { MYGUI_PLATFORM_LOG(Info, "device D3D lost"); for (MapTexture::const_iterator item = mTextures.begin(); item != mTextures.end(); ++item) { static_cast<DirectXTexture*>(item->second)->deviceLost(); } }
const std::string& Ogre2DataManager::getDataPath(const std::string& _name) { static std::string result; const VectorString& files = getDataListNames(_name, true); if (!files.empty()) { result = files[0]; if (files.size() > 1) { MYGUI_PLATFORM_LOG(Warning, "There are several files with name '" << _name << "'. '" << result << "' was used."); MYGUI_PLATFORM_LOG(Warning, "Other candidater are:"); for (size_t index = 1; index < files.size(); index ++) MYGUI_PLATFORM_LOG(Warning, " - '" << files[index] << "'"); } } return result; }
void Cocos2dRenderManager::shutdown() { MYGUI_PLATFORM_ASSERT(mIsInitialise, getClassTypeName() << " is not initialised"); MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); CCDirector *pDirector = CCDirector::sharedDirector(); pDirector->getScheduler()->unscheduleUpdateForTarget(this); // 注意 (maybe)CCNotificationCenter的生命周期在mainloop结束之前就结束了 CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, EVENT_COME_TO_BACKGROUND); // 解除与cocos2d节点的绑定 pDirector->setNotificationNode(NULL); destroyAllResources(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); mIsInitialise = false; }
void DirectX11RenderManager::shutdown() { MYGUI_PLATFORM_ASSERT(mIsInitialise, getClassTypeName() << " is not initialised"); MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); destroyAllResources(); if ( mVertexShader0 ) mVertexShader0->Release(); if ( mVertexShader1 ) mVertexShader1->Release(); if ( mPixelShader0 ) mPixelShader0->Release(); if ( mPixelShader1 ) mPixelShader1->Release(); if ( mSamplerState ) mSamplerState->Release(); if ( mBlendState ) mBlendState->Release(); if ( mDepthStencilState ) mDepthStencilState->Release(); if ( mRasterizerState ) mRasterizerState->Release(); if ( mInputLayout0 ) mInputLayout0->Release(); if ( mInputLayout1 ) mInputLayout1->Release(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); mIsInitialise = false; }
void DirectXRenderManager::initialise(IDirect3DDevice9 *_device) { MYGUI_PLATFORM_ASSERT(false == mIsInitialise, INSTANCE_TYPE_NAME << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << INSTANCE_TYPE_NAME); mpD3DDevice = _device; mVertexFormat = VertexColourType::ColourARGB; memset(&mInfo, 0, sizeof(mInfo)); if (mpD3DDevice != nullptr) { D3DVIEWPORT9 vp; mpD3DDevice->GetViewport(&vp); setViewSize(vp.Width, vp.Height); } mUpdate = false; MYGUI_PLATFORM_LOG(Info, INSTANCE_TYPE_NAME << " successfully initialized"); mIsInitialise = true; }
IDataStream* Ogre2DataManager::getData(const std::string& _name) { try { Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource(_name, mGroup, true); Ogre2DataStream* data = new Ogre2DataStream(stream); return data; } catch (const Ogre::FileNotFoundException& _e) { MYGUI_PLATFORM_LOG(Warning, _e.getDescription()); } return nullptr; }
void OgreRenderManager::setActiveViewport(unsigned short _num) { mActiveViewport = _num; if (mWindow != nullptr) { Ogre::WindowEventUtilities::removeWindowEventListener(mWindow, this); Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this); if (mWindow->getNumViewports() <= mActiveViewport) { MYGUI_PLATFORM_LOG(Error, "Invalid active viewport index selected. There is no viewport with given index."); } // рассылка обновлений windowResized(mWindow); } }
bool DirectXRenderManager::isFormatSupported(PixelFormat _format, TextureUsage _usage) { D3DFORMAT internalFormat = D3DFMT_UNKNOWN; unsigned long internalUsage = 0; D3DPOOL internalPool = D3DPOOL_MANAGED; if (_usage == TextureUsage::RenderTarget) { internalUsage |= D3DUSAGE_RENDERTARGET; internalPool = D3DPOOL_MANAGED; } else if (_usage == TextureUsage::Dynamic) internalUsage |= D3DUSAGE_DYNAMIC; else if (_usage == TextureUsage::Stream) internalUsage |= D3DUSAGE_DYNAMIC; if (_format == PixelFormat::R8G8B8A8) { internalFormat = D3DFMT_A8R8G8B8; } else if (_format == PixelFormat::R8G8B8) { internalFormat = D3DFMT_R8G8B8; } else if (_format == PixelFormat::L8A8) { internalFormat = D3DFMT_A8L8; } else if (_format == PixelFormat::L8) { internalFormat = D3DFMT_L8; } D3DFORMAT requestedlFormat = internalFormat; D3DXCheckTextureRequirements(mpD3DDevice, NULL, NULL, NULL, internalUsage, &internalFormat, internalPool); bool result = requestedlFormat == internalFormat; if (!result) MYGUI_PLATFORM_LOG(Warning, "Texture format '" << requestedlFormat << "'is not supported."); return result; }
void OgreRenderManager::setRenderWindow(Ogre::RenderWindow* _window) { // отписываемся if (mWindow != nullptr) { Ogre::WindowEventUtilities::removeWindowEventListener(mWindow, this); mWindow = nullptr; } mWindow = _window; if (mWindow != nullptr) { Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this); if (mWindow->getNumViewports() <= mActiveViewport && !mWindow->getViewport(mActiveViewport)->getOverlaysEnabled()) { MYGUI_PLATFORM_LOG(Warning, "Overlays are disabled. MyGUI won't render in selected viewport."); } windowResized(mWindow); } }
void DirectX11RenderManager::initialise(ID3D11Device* _device) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mpD3DDevice = _device; _device->GetImmediateContext(&mpD3DContext); mVertexFormat = VertexColourType::ColourABGR; std::string vertexProfile, pixelProfile; if ( mpD3DDevice->GetFeatureLevel() == D3D_FEATURE_LEVEL_11_0 ) { vertexProfile = "vs_5_0"; pixelProfile = "ps_5_0"; } else if ( mpD3DDevice->GetFeatureLevel() == D3D_FEATURE_LEVEL_10_1 ) { vertexProfile = "vs_4_1"; pixelProfile = "ps_4_1"; } else if ( mpD3DDevice->GetFeatureLevel() == D3D_FEATURE_LEVEL_10_0 ) { vertexProfile = "vs_4_0"; pixelProfile = "ps_4_0"; } else if ( mpD3DDevice->GetFeatureLevel() == D3D_FEATURE_LEVEL_9_3 ) { vertexProfile = "vs_4_0_level_9_3"; pixelProfile = "ps_4_0_level_9_3"; } else if ( mpD3DDevice->GetFeatureLevel() == D3D_FEATURE_LEVEL_9_2 ) { vertexProfile = "vs_4_0_level_9_1"; pixelProfile = "ps_4_0_level_9_1"; } else if ( mpD3DDevice->GetFeatureLevel() == D3D_FEATURE_LEVEL_9_1 ) { vertexProfile = "vs_4_0_level_9_1"; pixelProfile = "ps_4_0_level_9_1"; } // Get Current viewports memset(&mInfo, 0, sizeof(mInfo)); UINT numViewports = 0; D3D11_VIEWPORT viewports[8]; mpD3DContext->RSGetViewports(&numViewports, viewports); MYGUI_PLATFORM_ASSERT(numViewports == 0, getClassTypeName() << " 0 viewport sets"); setViewSize((int)viewports[0].Width, (int)viewports[0].Height); UINT flags = (1 << 11) | (1 << 15); // Build Flat Vertex Shader ID3DBlob* bytecode = 0, *errors = 0, *signature0 = 0, *signature1 = 0; HRESULT hr = D3DCompile(vsSource, strlen(vsSource), "VertexShader0", 0, 0, "main", vertexProfile.c_str(), flags, 0, &bytecode, &errors); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Compilation failed, unknown errors!")); hr = D3DGetInputSignatureBlob(bytecode->GetBufferPointer(), bytecode->GetBufferSize(), &signature0); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Compilation failed, failed to get input signature!")); hr = mpD3DDevice->CreateVertexShader(bytecode->GetBufferPointer(), bytecode->GetBufferSize(), 0, &mVertexShader0); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Create failed!")); if ( bytecode ) bytecode->Release(); if ( errors ) errors->Release(); // Build Textured Vertex Shader bytecode = 0; errors = 0; hr = D3DCompile(vsTexturedSource, strlen(vsTexturedSource), "VertexShader1", 0, 0, "main", vertexProfile.c_str(), flags, 0, &bytecode, &errors); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Compilation failed, unknown errors!")); hr = D3DGetInputSignatureBlob(bytecode->GetBufferPointer(), bytecode->GetBufferSize(), &signature1); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Compilation failed, failed to get input signature!")); hr = mpD3DDevice->CreateVertexShader(bytecode->GetBufferPointer(), bytecode->GetBufferSize(), 0, &mVertexShader1); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Create failed!")); if ( bytecode ) bytecode->Release(); if ( errors ) errors->Release(); // Build Flat Pixel Shader bytecode = 0; errors = 0; hr = D3DCompile(psSource, strlen(psSource), "PixelShader0", 0, 0, "main", pixelProfile.c_str(), flags, 0, &bytecode, &errors); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Compilation failed, unknown errors!")); hr = mpD3DDevice->CreatePixelShader(bytecode->GetBufferPointer(), bytecode->GetBufferSize(), 0, &mPixelShader0); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Create failed!")); if ( bytecode ) bytecode->Release(); if ( errors ) errors->Release(); // Build Textured Pixel Shader bytecode = 0; errors = 0; hr = D3DCompile(psTexturedSource, strlen(psTexturedSource), "PixelShader1", 0, 0, "main", pixelProfile.c_str(), flags, 0, &bytecode, &errors); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Compilation failed, unknown errors!")); hr = mpD3DDevice->CreatePixelShader(bytecode->GetBufferPointer(), bytecode->GetBufferSize(), 0, &mPixelShader1); MYGUI_PLATFORM_ASSERT(hr == S_OK, (errors ? (char*)errors->GetBufferPointer() : "Vertex Shader Create failed!")); if ( bytecode ) bytecode->Release(); if ( errors ) errors->Release(); // Create Sampler State D3D11_SAMPLER_DESC samplerDesc; samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP; samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP; samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP; samplerDesc.BorderColor[0] = samplerDesc.BorderColor[1] = samplerDesc.BorderColor[2] = samplerDesc.BorderColor[3] = 0.0f; samplerDesc.ComparisonFunc = (D3D11_COMPARISON_FUNC)0; samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; samplerDesc.MaxAnisotropy = 1; samplerDesc.MaxLOD = 0; samplerDesc.MinLOD = 0; samplerDesc.MipLODBias = 0.0f; hr = mpD3DDevice->CreateSamplerState(&samplerDesc, &mSamplerState); MYGUI_PLATFORM_ASSERT(hr == S_OK, "Sampler State Create failed!"); // Create Blend State D3D11_BLEND_DESC blendDesc; blendDesc.AlphaToCoverageEnable = false; blendDesc.IndependentBlendEnable = false; blendDesc.RenderTarget[0].BlendEnable = true; blendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; blendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; blendDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; blendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_SRC_ALPHA; blendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; blendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; blendDesc.RenderTarget[0].RenderTargetWriteMask = 0x0f; hr = mpD3DDevice->CreateBlendState(&blendDesc, &mBlendState); MYGUI_PLATFORM_ASSERT(hr == S_OK, "Blend State Create failed!"); // Create Depth Stencil State D3D11_DEPTH_STENCIL_DESC depthDesc; depthDesc.DepthEnable = false; depthDesc.DepthFunc = D3D11_COMPARISON_ALWAYS; depthDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO; depthDesc.StencilEnable = false; depthDesc.StencilReadMask = depthDesc.StencilWriteMask = 0; depthDesc.BackFace.StencilDepthFailOp = depthDesc.BackFace.StencilFailOp = depthDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; depthDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; depthDesc.FrontFace = depthDesc.BackFace; hr = mpD3DDevice->CreateDepthStencilState(&depthDesc, &mDepthStencilState); MYGUI_PLATFORM_ASSERT(hr == S_OK, "Depth Stencil State Create failed!"); // Create Rasterizer State D3D11_RASTERIZER_DESC rastDesc; rastDesc.FillMode = D3D11_FILL_SOLID; rastDesc.CullMode = D3D11_CULL_NONE; rastDesc.FrontCounterClockwise = FALSE; rastDesc.DepthBias = 0; rastDesc.DepthBiasClamp = 0; rastDesc.SlopeScaledDepthBias = 0; rastDesc.ScissorEnable = FALSE; rastDesc.MultisampleEnable = FALSE; rastDesc.AntialiasedLineEnable = FALSE; hr = mpD3DDevice->CreateRasterizerState(&rastDesc, &mRasterizerState); MYGUI_PLATFORM_ASSERT(hr == S_OK, "Rasterizer State Create failed!"); // Create Input Layout hr = mpD3DDevice->CreateInputLayout(vertexLayout, 3, signature0->GetBufferPointer(), signature0->GetBufferSize(), &mInputLayout0); MYGUI_PLATFORM_ASSERT(hr == S_OK, "Input Layout Create failed!"); signature0->Release(); // Create Input Layout hr = mpD3DDevice->CreateInputLayout(vertexLayout, 3, signature1->GetBufferPointer(), signature1->GetBufferSize(), &mInputLayout1); MYGUI_PLATFORM_ASSERT(hr == S_OK, "Input Layout Create failed!"); signature1->Release(); mUpdate = false; MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void ExportDataManager::shutdown() { MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); }
void ExportDataManager::initialise() { MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); }
void DummyRenderManager::shutdown() { MYGUI_PLATFORM_LOG(Info, "* Shutdown: " << getClassTypeName()); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully shutdown"); }