MCPcopy Create free account
hub / github.com/axmolengine/axmol / MakeRenderingTarget

Method MakeRenderingTarget

tests/live2d-tests/Source/LAppModel.cpp:755–799  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

753}
754
755void LAppModel::MakeRenderingTarget()
756{
757 // RenderTexture::createは描画タイミングで呼ぶとAssert扱いになるので注意すること
758 if (!_renderSprite && !_renderBuffer->IsValid())
759 {
760 float aspectFactor = 1.0f;
761 int frameW = Director::getInstance()->getRenderView()->getFrameSize().width, frameH = Director::getInstance()->getRenderView()->getFrameSize().height;
762
763#if (AX_TARGET_PLATFORM == AX_PLATFORM_MAC)
764 // Retina対策でこっちからとる
765 RenderViewImpl *glimpl = (RenderViewImpl *)Director::getInstance()->getRenderView();
766 int renderW = frameW;
767 int renderH = frameH;
768 glfwGetFramebufferSize(glimpl->getWindow(), &frameW, &frameH);
769 aspectFactor = static_cast<float>(renderW) / frameW;
770#endif
771
772 Size visibleSize = Director::getInstance()->getVisibleSize();
773 Point origin = Director::getInstance()->getVisibleOrigin();
774
775 _renderSprite = RenderTexture::create(frameW, frameH, ax::backend::PixelFormat::RGBA8);
776 _renderSprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
777 _renderSprite->getSprite()->getTexture()->setAntiAliasTexParameters();
778 _renderSprite->getSprite()->setBlendFunc(BlendFunc::ALPHA_NON_PREMULTIPLIED);
779 _renderSprite->getSprite()->setOpacityModifyRGB(false);
780 // サンプルシーンへ登録
781 SampleScene::getInstance()->addChild(_renderSprite);
782 _renderSprite->setVisible(true);
783
784 // _renderSpriteのテクスチャを作成する
785 _renderSprite->getSprite()->getTexture()->setTexParameters(
786 ax::Texture2D::TexParams(
787 ax::backend::SamplerFilter::LINEAR, // MagFilter
788 ax::backend::SamplerFilter::LINEAR, // MinFilter
789 ax::backend::SamplerAddressMode::CLAMP_TO_EDGE, // AddressingMode S
790 ax::backend::SamplerAddressMode::CLAMP_TO_EDGE // AddressingMode T
791 )
792 );
793
794 // レンダリングバッファの描画先をそのテクスチャにする
795 _renderBuffer->CreateOffscreenFrame(frameW, frameH, _renderSprite);
796
797 _renderSprite->setScale(aspectFactor);
798 }
799}
800
801void LAppModel::SetSpriteColor(float r, float g, float b, float a)
802{

Callers 1

ChangeSceneMethod · 0.80

Calls 15

getInstanceFunction · 0.85
glfwGetFramebufferSizeFunction · 0.85
createFunction · 0.85
getFrameSizeMethod · 0.80
CreateOffscreenFrameMethod · 0.80
PointClass · 0.50
IsValidMethod · 0.45
getVisibleSizeMethod · 0.45
getVisibleOriginMethod · 0.45
setPositionMethod · 0.45
getTextureMethod · 0.45

Tested by

no test coverage detected