| 753 | } |
| 754 | |
| 755 | void 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 | |
| 801 | void LAppModel::SetSpriteColor(float r, float g, float b, float a) |
| 802 | { |
no test coverage detected