SceneManagerとScalableWindow併用時に文字にムラ?が出来る
な。  2016/10/13(Thu) 22:39
シーンAにてスペースキーでウィンドウサイズを800*600にしてから、シーンBに遷移すると添付画像のように文字にムラ?が生じてしまいます。
対策方法はありますでしょうか?
バージョンは「August 2016 v2」です。

#include <Siv3D.hpp>
#include <HamFramework.hpp>

struct SceneData{
size_t index = 0;
Array<Size> arr = {{640,480},{640,400},{720,540},{800,600},{960,720}};
};

using MyApp = SceneManager<String,SceneData>;

class SceneA : public MyApp::Scene{
public:
void init() override{
m_font = Font(24);
}

void update() override{
if(Input::KeySpace.clicked){
m_data->index = (m_data->index + 1) % m_data->arr.size();
Window::Resize(m_data->arr[m_data->index]);
}

if(Input::MouseL.clicked){
changeScene(L"SceneB");
}
}

void draw() const override{
m_font(L"<シーンA>\nハローSiv3D\n",Window::Size()).draw({10,10},Palette::White);
}

private:
Font m_font;
};

class SceneB : public MyApp::Scene{
public:
void init() override{
m_font = Font(24);
}

void update() override{
if(Input::KeySpace.clicked){
m_data->index = (m_data->index + 1) % m_data->arr.size();
Window::Resize(m_data->arr[m_data->index]);
}

if(Input::MouseL.clicked){
changeScene(L"SceneA");
}
}

void draw() const override{
m_font(L"<シーンB>\nTest\n",Window::Size()).draw({10,10},Palette::White);
}

private:
Font m_font;
};


void Main(){
ScalableWindow::Setup(640,480);

MyApp manager;

manager.add<SceneA>(L"SceneA");
manager.add<SceneB>(L"SceneB");

while(System::Update()){
{
const auto transformer = ScalableWindow::CreateTransformer();
manager.updateAndDraw();
}

ScalableWindow::DrawBlackBars(HSV(40,0.2,0.9));
}
}



記事編集
な。  2016/10/13(Thu) 23:42
これに関連してもう一つだけ報告しておきます。
SceneBase::drawFadeIn(drawFadeOut)にて、「s3d::Window::ClientRect()」を使用しているため、
サイズを変更してからシーン遷移すると、画面全体(ScalableWindow::DrawBlackBarsで描画した範囲は除く)に
フェード処理を行わないのですが仕様ですか?

添付画像はフェード色を白色に設定しています。



編集
Reputeless  2016/10/14(Fri) 20:14
[1]
Font 内部で用意されている文字画像が本来の解像度以上に拡大表示されるため、ぼけて見えます。
将来的には改善予定ですが、現時点では仕様です。

元々の BaseSize を広く設定し、大きなフォントを使うことで
拡大時のアーティファクトを抑えることができます。

[2]
ご指摘ありがとうございます。
今後のバージョンで BaseClientRect() を使うよう修正します。
現バージョンでは drawFadeIn() をオーバーライドして対策してください。
編集
な。  2016/10/14(Fri) 21:26
了解です。
回答ありがとうございます。
編集
件名
Re: SceneManagerとScalableWindow併用時に文字にムラ?が出来る
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -