経済ニュース(02/02)

FOMC、0.25ポイントに利上げ減速-さらなる引き上げが適切に – ブルームバーグ

米連邦公開市場委員会(FOMC)は1月31日-2月1日に開催した定例会合で、主要政策金利を0.25ポイント引き上げることを決めた。FOMCはインフレ抑制に向けた取り組みを続けているが、そのペースを減速させた。一方、今後さらに複数回の利上げが適切になるとの認識も示した。

ついに発表された「Galaxy S23/S23+/S23 Ultra」、さっそく実機をチェック – ケータイ Watch

サムスン電子は、2月1日(現地時間)に米カリフォルニア州サンフランシスコで自社製品のお披露目イベントとなる「Galaxy Unpacked」を開催。フラッグシップモデルの「Galaxy S23」シリーズを計3機種発表した。Unpackedで登場したのは、Galaxy S23、S23+、S23 Ultra。現在、発表会が進行している最中だが、一足先に実機に触れることができたので、その模様をお届けしたい。

印アダニ氏の中核企業、公募増資を一転中止-株価急落の中で – ブルームバーグ

インドの資産家ゴータム・アダニ氏率いるアダニ・グループの中核企業アダニ・エンタープライゼスは、2000億ルピー(約3160億円)に上る大規模な公募増資を中止することを決定した。米空売り投資家ヒンデンブルグ・リサーチのリポートをきっかけに、同グループ企業の株価は急落していた。

米ISM製造業総合景況指数、1月は47.4に低下-市場予想も下回る – ブルームバーグ

米供給管理協会(ISM)が発表した1月の製造業総合景況指数は5カ月連続で低下し、2020年5月以来の低水準となった。受注と生産が一段と落ち込んだ。

米国株、ダウ反落で始まる FOMC控え利益確定売り – 日本経済新聞

【NQNニューヨーク=川内資子】1日の米株式相場でダウ工業株30種平均は反落して始まり、午前10時現在は前日比161ドル05セント安の3万3924ドル99セントで推移している。米連邦公開市場委員会(FOMC)の結果発表を午後に控えて様子見ムードが強いなか、目先の利益を確定する目的の売りが先行している。FOMCでは利上げ幅を前回の0.5%から0.25%に縮小する見込み。今後の政策を見極めるうえで

なんと1缶600円のハイボール! 高級ウイスキー“白州”を使用で今年6月発売 サントリーウイスキー100周年|TBS NEWS DIG – TBS NEWS DIG Powered by JNN

サントリーは高級ウイスキー「白州」を使ったハイボールを6月から販売すると発表しました。原酒のみを使ったプレミアム商品ですが、1缶600円。強気の価格設定の背景には…サントリー 鳥井信宏社長「サントリーウイスキー100年の歴史は、サントリーのパーパス(目的)を体現してきた鳥井信治郎のやってみなはれ精神そのものです」…

山手線、一時運転見合わせ 渋谷駅で人身事故 – サンスポ

1日午後7時25分ごろ、JR渋谷駅(東京都渋谷区)の山手線内回りホーム付近で乗客が電車にはねられ負傷した。山手線と埼京線、湘南新宿ラインが全線で一時運転を見合…

米ADP民間雇用者数、1月は10万6000人増-市場予想18万人増 – ブルームバーグ

米国の民間雇用者数は1月、予想を下回る増加にとどまり、過去2年で最低の伸びとなった。米国の広範な地域での悪天候が響いたとみられる。

【2月も値上げラッシュ】「食品が安い」ドラッグストアのカラクリ スーパーは奇策 – 日テレNEWS

2月も値上げラッシュが止まりません。調査会社によると、5000品目以上が値上げします。こうした中、より安く食品が買え、食品が売り上げの3割ほどを占めるというドラッグストアが注目されています。お得に商品を買うことができる理由を取材しました。     ◇埼玉・吉川市のスーパーマルサン吉川店を取材すると、買い物客からは…

イオン 非正規社員の賃金 平均7%引き上げへ パートなど40万人 – nhk.or.jp

流通大手のイオンはグループで働くパートなどの非正規社員およそ40万人を対象に、時給を平均でおよそ7%引き上げる方針を固め…

トヨタ、東京本社移転検討 品川駅周辺に – 産経ニュース

トヨタ自動車は1日、東京本社(東京都文京区)を品川駅(東京都港区)周辺に移転することを検討していると明らかにした。品川駅周辺は羽田空港へのアクセスのしやすさな…

「30代の平均貯蓄額」はいくら?みんなの貯蓄事情 – Yahoo!ファイナンス

30歳代の貯蓄事情はどうなっているのでしょうか? 30歳代といえば、お金の貯め始めの時期です。この時期にどれくらい貯めているのでしょうか? 金融広報中央委員会が調査した「家計の金融行動に関する世論調査(2021年)」のデータから、30歳代の平均貯蓄をみてみましょう。 30歳代の平…

ユーロ圏インフレ、1月は予想以上に減速-利上げ軌道で激しい議論も – ブルームバーグ

ユーロ圏のインフレは1月に予想以上に減速した。欧州中央銀行(ECB)の今後の利上げ軌道を巡る議論はいっそう白熱しそうだ。

浄水カートリッジの模倣品、大手通販サイトに大量出品…消費者庁「安すぎる商品は疑って」 – 読売新聞オンライン

アマゾンや楽天市場などの通販サイトで、大手メーカーが販売する浄水カートリッジの精巧な模倣品が大量に出品されているとして、消費者庁は1日、販売業者7社を公表し、誤って購入しないように注意を呼びかけた。  消費者安全法に基

フラット35の上げ幅最大 – 新潟日報デジタルプラス

住宅金融支援機構は1日、長期固定金利型住宅ローン「フラット35」の2月の適用金利を発表した。長期金利の上昇傾向を受け、返済期間35年以下の最低金利は前月比で0・20ポイント上がり、現行商品となった2…

三菱商事、最長2年の休職と社内複業制度を導入へ – 日本経済新聞

三菱商事は、社員がキャリア形成やリスキリング(学び直し)のために最長2年間休職できる制度を導入する。業務時間の一部でほかの部署の業務を経験できる仕組みも取り入れる。商社業界は脱炭素社会への対応を迫られるなど、経営環境が大きく変わっている。三菱商事は社員の自主的な学びをサポートすることで対応力を強化する。社員が国内外の大学・大学院で学位を取得しようとする際に長期休職できる「サバティカル休職制度」

サントリー 山崎と白州のウイスキー蒸留所に大規模設備投資へ – nhk.or.jp

サントリーはウイスキー事業を強化するため、大阪と山梨の蒸留所に合わせて100億円規模の設備投資を行う方針を明らかにしまし…

【衝撃の瞬間】新幹線 車いす用スロープ板ごと発車 清掃員が足で…[2023/02/01 18:09] – テレビ朝日

発車直後の新幹線です。ドアの足元には、車椅子用のスロープ板が…。と、そこに、ホームに立っていた清掃員が足で受け止めました。

 清掃員:「これ付けたまんま」

 スロープ板を付けたまま発車という事態。その場に居合わせた撮影者は困惑したと言います。

 起きたのは、東京駅の新幹線ホーム22番線。北海道の新函館北斗駅行の列車でした。なぜ、そのまま発車してしまったのか。撮影者はある疑問を投げ掛けます。

 撮影者:「最後尾の先頭車両の所に車掌さんが乗っていたが、ちゃんと顔を出しているのにもかかわらず見えていなかったのか…

住友化学、市況低迷で純損益ゼロに 1000億円超の下方修正 – ロイター (Reuters Japan)

住友化学は1日、2023年3月期の連結業績予想(国際会計基準)を営業損益、純損益とも1000億円超引き下げ、ゼロに下方修正した。ロシアによるウクライナ侵攻の長期化や、中国の経済停滞などで石油化学製品の市況が低迷しているため。

住宅高騰、増やせぬ子ども 面積も狭く心理冷やす – 日本経済新聞

住宅の価格高騰と狭さが子どもを産もうという心理を冷やしている。若い世代では理想の数の子どもを持たない理由として「家が狭いから」と答える人が2割を超えた。家の狭さや長い通勤時間が第2子の出生を抑制するという分析も出た。岸田文雄首相の「次元の異なる」少子化対策を効果あるものにするためには空き家活用など住宅政策との連携が欠かせない。専有面積の平均、2LDK不動産経済研究所(東京・新宿)によると、2

DIRECT2Dを試す、その3

今回はFPSを固定化するコードを書きます。

大抵のゲームエンジンはエンジン側でFPSを制御していると思うのですが、

DirectXを使用する場合は実際に時間を計測して画面更新のタイミングを計らなくちゃいけないんですね。

サンプルソースは以下のサイトのコードを使用しています。

http://dioltista.blogspot.com/2019/04/c-directx11-fps.html

main.h
#pragma once

#include <windows.h>
#pragma comment(lib,"winmm.lib")

class Window
{
public:
    HRESULT InitWindow(HINSTANCE hInstance, int nCmdShow);
    void InitFps();
    void CalculationFps();
    void CalculationSleep();
    static HWND GethWnd();
    static double GetFps();
private:
    static HWND g_hWnd;
    static double g_dFps;
    LARGE_INTEGER Freq = { 0 };
    LARGE_INTEGER StartTime = { 0 };
    LARGE_INTEGER NowTime = { 0 };
    int iCount = 0;
    DWORD SleepTime = 0;
};

main.cpp

#include "Main.h"
#include "DirectX.h"

HWND Window::g_hWnd = nullptr;
double Window::g_dFps = 0;

//--------------------------------------------------------------------------------------
// 前方宣言
//--------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
    Window win;

    if (FAILED(win.InitWindow(hInstance, nCmdShow)))
        return 0;

    DirectX11 dx;

    if (FAILED(dx.InitDevice()))
        return 0;

    win.InitFps();

    // メインメッセージループ
    MSG msg = { 0 };
    while (WM_QUIT != msg.message)
    {
        if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            win.CalculationFps();

            dx.Render();

            win.CalculationSleep();
        }
    }

    return (int)msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;

    switch (message)
    {
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        EndPaint(hWnd, &ps);
        break;

    case WM_DESTROY:
        PostQuitMessage(0);
        break;

    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }

    return 0;
}

HRESULT Window::InitWindow(HINSTANCE hInstance, int nCmdShow)
{
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = nullptr;
    wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wcex.lpszMenuName = nullptr;
    wcex.lpszClassName = L"WindowClass";
    wcex.hIconSm = nullptr;
    if (!RegisterClassEx(&wcex))
        return E_FAIL;

    RECT rc = { 0, 0, 800, 600 };
    AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, FALSE);
    g_hWnd = CreateWindow(L"WindowClass", L"FPSの固定",
        WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, nullptr, nullptr, hInstance,
        nullptr);
    if (!g_hWnd)
        return E_FAIL;

    ShowWindow(g_hWnd, nCmdShow);

    return S_OK;
}

HWND Window::GethWnd()
{
    return g_hWnd;
}

void Window::InitFps()
{

    QueryPerformanceFrequency(&Freq);
    QueryPerformanceCounter(&StartTime);//現在の時間を取得(1フレーム目)
}

void Window::CalculationFps()
{
    //FPSの計算
    if (iCount == 60)//カウントが60の時の処理
    {
        QueryPerformanceCounter(&NowTime);//現在の時間を取得(60フレーム目)
        //FPS = 1秒 / 1フレームの描画にかかる時間
        //    = 1000ms / ((現在の時間ms - 1フレーム目の時間ms) / 60フレーム)
        g_dFps = 1000.0 / (static_cast<double>((NowTime.QuadPart - StartTime.QuadPart) * 1000 / Freq.QuadPart) / 60.0);
        iCount = 0;//カウントを初期値に戻す
        StartTime = NowTime;//1フレーム目の時間を現在の時間にする
    }
    iCount++;//カウント+1
}

void Window::CalculationSleep()
{
    //Sleepさせる時間の計算
    QueryPerformanceCounter(&NowTime);//現在の時間を取得
    //Sleepさせる時間ms = 1フレーム目から現在のフレームまでの描画にかかるべき時間ms - 1フレーム目から現在のフレームまで実際にかかった時間ms
    //                  = (1000ms / 60)*フレーム数 - (現在の時間ms - 1フレーム目の時間ms)
    SleepTime = static_cast<DWORD>((1000.0 / 60.0) * iCount - (NowTime.QuadPart - StartTime.QuadPart) * 1000 / Freq.QuadPart);
    if (SleepTime > 0 && SleepTime < 18)//大きく変動がなければSleepTimeは1~17の間に納まる
    {
        timeBeginPeriod(1);
        Sleep(SleepTime);
        timeEndPeriod(1);
    }
    else//大きく変動があった場合
    {
        timeBeginPeriod(1);
        Sleep(1);
        timeEndPeriod(1);
    }
}

double Window::GetFps()
{
    return g_dFps;
}

DirectX.h

#pragma once

#pragma comment(lib,"d3d11.lib")
#pragma comment(lib,"d2d1.lib")
#pragma comment(lib,"dwrite.lib")
#include <d3d11_1.h>
#include <directxcolors.h>
#include <d2d1.h>
#include <dwrite.h>
#include <wchar.h>

class DirectX11
{
public:
    DirectX11();
    ~DirectX11();
    HRESULT InitDevice();
    void Render();
private:
    ID3D11Device* pd3dDevice;
    ID3D11Device1* pd3dDevice1;
    ID3D11DeviceContext* pImmediateContext;
    ID3D11DeviceContext1* pImmediateContext1;
    IDXGISwapChain* pSwapChain;
    IDXGISwapChain1* pSwapChain1;
    ID3D11RenderTargetView* pRenderTargetView;

    ID2D1Factory* pD2DFactory;
    IDWriteFactory* pDWriteFactory;
    IDWriteTextFormat* pTextFormat;
    ID2D1RenderTarget* pRT;
    ID2D1SolidColorBrush* pSolidBrush;
    IDXGISurface* pDXGISurface;
};

DirectX.cpp

#include "Main.h"
#include "DirectX.h"

DirectX11::DirectX11()
{
    pd3dDevice = nullptr;
    pd3dDevice1 = nullptr;
    pImmediateContext = nullptr;
    pImmediateContext1 = nullptr;
    pSwapChain = nullptr;
    pSwapChain1 = nullptr;
    pRenderTargetView = nullptr;

    pD2DFactory = nullptr;
    pDWriteFactory = nullptr;
    pTextFormat = nullptr;
    pRT = nullptr;
    pSolidBrush = nullptr;
    pDXGISurface = nullptr;
}

DirectX11::~DirectX11()
{
    if (pDXGISurface) pDXGISurface->Release();
    if (pSolidBrush) pSolidBrush->Release();
    if (pRT) pRT->Release();
    if (pTextFormat) pTextFormat->Release();
    if (pDWriteFactory) pDWriteFactory->Release();
    if (pD2DFactory) pD2DFactory->Release();

    if (pImmediateContext) pImmediateContext->ClearState();

    if (pRenderTargetView) pRenderTargetView->Release();
    if (pSwapChain1) pSwapChain1->Release();
    if (pSwapChain) pSwapChain->Release();
    if (pImmediateContext1) pImmediateContext1->Release();
    if (pImmediateContext) pImmediateContext->Release();
    if (pd3dDevice1) pd3dDevice1->Release();
    if (pd3dDevice) pd3dDevice->Release();
}

HRESULT DirectX11::InitDevice()
{
    HRESULT hr = S_OK;

    RECT rc;
    GetClientRect(Window::GethWnd(), &rc);
    UINT width = rc.right - rc.left;
    UINT height = rc.bottom - rc.top;

    UINT createDeviceFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;

#ifdef _DEBUG
    createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif

    D3D_DRIVER_TYPE driverTypes[] =
    {
        D3D_DRIVER_TYPE_HARDWARE,
        D3D_DRIVER_TYPE_WARP,
        D3D_DRIVER_TYPE_REFERENCE,
    };
    UINT numDriverTypes = ARRAYSIZE(driverTypes);

    D3D_FEATURE_LEVEL featureLevels[] =
    {
        D3D_FEATURE_LEVEL_11_1,
        D3D_FEATURE_LEVEL_11_0,
        D3D_FEATURE_LEVEL_10_1,
        D3D_FEATURE_LEVEL_10_0,
    };
    UINT numFeatureLevels = ARRAYSIZE(featureLevels);

    D3D_DRIVER_TYPE g_driverType = D3D_DRIVER_TYPE_NULL;
    D3D_FEATURE_LEVEL g_featureLevel = D3D_FEATURE_LEVEL_11_0;
    for (UINT driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++)
    {
        g_driverType = driverTypes[driverTypeIndex];
        hr = D3D11CreateDevice(nullptr, g_driverType, nullptr, createDeviceFlags, featureLevels, numFeatureLevels,
            D3D11_SDK_VERSION, &pd3dDevice, &g_featureLevel, &pImmediateContext);

        if (hr == E_INVALIDARG)
        {
            hr = D3D11CreateDevice(nullptr, g_driverType, nullptr, createDeviceFlags, &featureLevels[1], numFeatureLevels - 1,
                D3D11_SDK_VERSION, &pd3dDevice, &g_featureLevel, &pImmediateContext);
        }

        if (SUCCEEDED(hr))
            break;
    }
    if (FAILED(hr))
        return hr;

    IDXGIFactory1* dxgiFactory = nullptr;
    {
        IDXGIDevice* dxgiDevice = nullptr;
        hr = pd3dDevice->QueryInterface(__uuidof(IDXGIDevice), reinterpret_cast<void**>(&dxgiDevice));
        if (SUCCEEDED(hr))
        {
            IDXGIAdapter* adapter = nullptr;
            hr = dxgiDevice->GetAdapter(&adapter);
            if (SUCCEEDED(hr))
            {
                hr = adapter->GetParent(__uuidof(IDXGIFactory1), reinterpret_cast<void**>(&dxgiFactory));
                adapter->Release();
            }
            dxgiDevice->Release();
        }
    }
    if (FAILED(hr))
        return hr;

    IDXGIFactory2* dxgiFactory2 = nullptr;
    hr = dxgiFactory->QueryInterface(__uuidof(IDXGIFactory2), reinterpret_cast<void**>(&dxgiFactory2));
    if (dxgiFactory2)
    {
        hr = pd3dDevice->QueryInterface(__uuidof(ID3D11Device1), reinterpret_cast<void**>(&pd3dDevice1));
        if (SUCCEEDED(hr))
        {
            (void)pImmediateContext->QueryInterface(__uuidof(ID3D11DeviceContext1), reinterpret_cast<void**>(&pImmediateContext1));
        }

        DXGI_SWAP_CHAIN_DESC1 sd = {};
        sd.Width = width;
        sd.Height = height;
        sd.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
        sd.SampleDesc.Count = 1;
        sd.SampleDesc.Quality = 0;
        sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
        sd.BufferCount = 1;

        hr = dxgiFactory2->CreateSwapChainForHwnd(pd3dDevice, Window::GethWnd(), &sd, nullptr, nullptr, &pSwapChain1);
        if (SUCCEEDED(hr))
        {
            hr = pSwapChain1->QueryInterface(__uuidof(IDXGISwapChain), reinterpret_cast<void**>(&pSwapChain));
        }

        dxgiFactory2->Release();
    }
    else
    {
        DXGI_SWAP_CHAIN_DESC sd = {};
        sd.BufferCount = 1;
        sd.BufferDesc.Width = width;
        sd.BufferDesc.Height = height;
        sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
        sd.BufferDesc.RefreshRate.Numerator = 60;
        sd.BufferDesc.RefreshRate.Denominator = 1;
        sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
        sd.OutputWindow = Window::GethWnd();
        sd.SampleDesc.Count = 1;
        sd.SampleDesc.Quality = 0;
        sd.Windowed = TRUE;

        hr = dxgiFactory->CreateSwapChain(pd3dDevice, &sd, &pSwapChain);
    }

    dxgiFactory->MakeWindowAssociation(Window::GethWnd(), DXGI_MWA_NO_ALT_ENTER);

    dxgiFactory->Release();

    if (FAILED(hr))
        return hr;

    ID3D11Texture2D* pBackBuffer = nullptr;
    hr = pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), reinterpret_cast<void**>(&pBackBuffer));
    if (FAILED(hr))
        return hr;

    hr = pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &pRenderTargetView);
    pBackBuffer->Release();
    if (FAILED(hr))
        return hr;

    pImmediateContext->OMSetRenderTargets(1, &pRenderTargetView, nullptr);

    D3D11_VIEWPORT vp;
    vp.Width = (FLOAT)width;
    vp.Height = (FLOAT)height;
    vp.MinDepth = 0.0f;
    vp.MaxDepth = 1.0f;
    vp.TopLeftX = 0;
    vp.TopLeftY = 0;
    pImmediateContext->RSSetViewports(1, &vp);

    // Direct2D,DirectWriteの初期化
    hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pD2DFactory);
    if (FAILED(hr))
        return hr;

    hr = pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pDXGISurface));
    if (FAILED(hr))
        return hr;

    FLOAT dpiX;
    FLOAT dpiY;
    //pD2DFactory->GetDesktopDpi(&dpiX, &dpiY);
    dpiX = (FLOAT)GetDpiForWindow(GetDesktopWindow());
    dpiY = dpiX;

    D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_PREMULTIPLIED), dpiX, dpiY);

    hr = pD2DFactory->CreateDxgiSurfaceRenderTarget(pDXGISurface, &props, &pRT);
    if (FAILED(hr))
        return hr;

    hr = DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), reinterpret_cast<IUnknown**>(&pDWriteFactory));
    if (FAILED(hr))
        return hr;

    //関数CreateTextFormat()
    //第1引数:フォント名(L"メイリオ", L"Arial", L"Meiryo UI"等)
    //第2引数:フォントコレクション(nullptr)
    //第3引数:フォントの太さ(DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_WEIGHT_BOLD等)
    //第4引数:フォントスタイル(DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STYLE_OBLIQUE, DWRITE_FONT_STYLE_ITALIC)
    //第5引数:フォントの幅(DWRITE_FONT_STRETCH_NORMAL,DWRITE_FONT_STRETCH_EXTRA_EXPANDED等)
    //第6引数:フォントサイズ(20, 30等)
    //第7引数:ロケール名(L"")
    //第8引数:テキストフォーマット(&g_pTextFormat)
    hr = pDWriteFactory->CreateTextFormat(L"メイリオ", nullptr, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, 20, L"", &pTextFormat);
    if (FAILED(hr))
        return hr;

    //関数SetTextAlignment()
    //第1引数:テキストの配置(DWRITE_TEXT_ALIGNMENT_LEADING:前, DWRITE_TEXT_ALIGNMENT_TRAILING:後, DWRITE_TEXT_ALIGNMENT_CENTER:中央)
    hr = pTextFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING);
    if (FAILED(hr))
        return hr;

    //関数CreateSolidColorBrush()
    //第1引数:フォント色(D2D1::ColorF(D2D1::ColorF::Black):黒, D2D1::ColorF(D2D1::ColorF(0.0f, 0.2f, 0.9f, 1.0f)):RGBA指定)
    hr = pRT->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black), &pSolidBrush);
    if (FAILED(hr))
        return hr;

    return S_OK;
}

void DirectX11::Render()
{
    pImmediateContext->ClearRenderTargetView(pRenderTargetView, DirectX::Colors::Aquamarine);

    // テキストの描画
    WCHAR wcText1[256] = { 0 };

    swprintf(wcText1, 256, L"%lf", Window::GetFps());

    pRT->BeginDraw();
    pRT->DrawText(wcText1, ARRAYSIZE(wcText1) - 1, pTextFormat, D2D1::RectF(0, 0, 800, 20), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pRT->EndDraw();

    pSwapChain->Present(0, 0);
}

ITニュース(02/01)

Discordを起動しているとゲーム性能が低下する不具合。GeForce環境で発生。対処方法・回避策あり – ニッチなPCゲーマーの環境構築Z

GeForce環境において、Discord (ディスコード)を起動しているとゲームパフォーマンスが低下する不具合が発生しています。 不具合概要 Discordをバックグラウンドで開いていると、NVI…

PC版『サイバーパンク2077』NVIDIA DLSS 3&NVIDIA Reflex対応アップデート配信! – Game*Spark

Windows10でDLSSフレーム生成を使用するための方法も紹介されています。

モバイルゲーミングモニター「ARZOPA G1 Game」レビュー – GAME Watch

近年、テクノロジーの進歩により、家の高性能PC環境と同じくらい快適なゲーム空間を外出先でも、という多くのゲーマーの夢が叶いつつある。とりわけSteam DeckやGPD WIN 4のようなポータブルPDでAAAゲームが動くようになり、いつでもどこでもハイクオリティゲームが可能になると、更なる欲望が湧いてくる。「どうせならもっと大きな画面で、できれば高フレームレートで遊びたい!」。

TYPE-MOON×コエテクの「Fate」シリーズ最新アクションRPG『Fate/Samurai Remnant』Steamストアページ公開! – Game*Spark

新たな聖杯戦争「盈月の儀」を描くアクションRPGです。

Steamにかつてない“The Backrooms”ブーム到来?11日で4本の関連作リリースでもはや「みんなが知ってる部屋」に – Game*Spark

“The Backrooms”は海外発の都市伝説的なネットミームです。

ベッドの上でスマホを充電したまま眠った男性が感電死 タイで発生 (2023年1月31日掲載) – livedoor

ベッドでスマホを充電していたタイの男性が就寝中に感電死した。何らかの原因で充電ケーブルがショートしたと考えられている。劣悪なサードパーティー製品などを使用し続け参事を招くパターンが多いそう

要求スペック高めな『FORSPOKEN』を快適にプレイする裏技?美麗グラフィックを最大限に引き出すSteamガイドが話題 – Game*Spark

必要最低限のフレームレートは目指したいものです。

アークがバレンタインデーセール開催。ゲームPCや周辺機器を特価販売 – 4Gamer.net

アーク バレンタインデーセール 2023 配信元 アーク 配信日 2023/01/31 アーク バレンタインデーセール 2023 を開催arkhive限定特価モデルやバレンタイン限定セット商品など数量限定特価商品が多数登場 株式会社アーク パソコンショップアーク(本社:東京都千代田区、代表取締役:嶋田雄一)は「アーク バレンタインデーセール 2023」をオンラインストアおよび秋葉原店舗で開催いたします。 開催期間は2023年2月1日(水)20:00 から2023年2…

セルフレジ デジタル技術で年齢確認 “酒やたばこも販売を” – nhk.or.jp

コンビニエンスストアのセルフレジでもデジタル技術で年齢を確認して酒やたばこを販売できるよう、業界団体が新たなガイドライン…

メール、ブラウザ、天気…基本タスクの使えるサードパーティアプリ – GIZMODO JAPAN

メール、ブラウザ、天気、音楽など、基本的なスマホ用アプリで使えるサードパーティー製はこれ。

「ChatGPTは2年でGoogleを破壊できる」とGmailの生みの親が警告 – GIGAZINE(ギガジン)

Gmailを考案して開発を主導したポール・ブックハイト氏が「対話型AIのChatGPTは1~2年でGoogleを破壊する可能性がある」という見解を述べました。ブックハイト氏は、ChatGPTがGoogleの最も収益性の高い製品である検索エンジンを排除すると考えています。

Sd7c搭載11インチタブレットが3万9800円! HP Chromebook x2 11が台数限定でアウトレット販売中 – こまめブログ

HP公式サイトにて、Chrome OS搭載の11インチタブレット『HP Chromebook x2 11』のWi-Fiモデルが3万9800円でアウトレット販売されています。※ChromebookはChrome OSを搭載

ASUS、最新Ryzen+Radeon搭載で19万円台の16型ゲーミングノート – PC Watch

ASUS JAPAN株式会社は、Ryzen 7 7735HSとRadeon RX 7600Sを搭載した16型ゲーミングノート「TUF Gaming A16 Advantage Edition」を発売した。価格は19万9,800円。

「GeForce Experience」に3件の脆弱性 ~コード実行やデータ改竄のおそれ – 窓の杜

米NVIDIAは1月30日(現地時間)、同社製GPUユーザー向けに無償提供しているユーティリティアプリ「GeForce Experience」に脆弱性が存在すると発表した。

ロシア最大の検索エンジン「Yandex」のソースコード流出で検索ランキングの決定要因が明らかに – GIGAZINE(ギガジン)

ロシア最大の検索エンジンであり、世界でも第4位の検索エンジン「Yandex」からソースコードが流出しました。ハッカーによる攻撃ではなく、元従業員がGitリポジトリを盗み出したものだとのことで、個人情報は含まれていませんが、アルゴリズム内で用いられている1922の検索ランキング決定要因が明らかになっています。

経済ニュース(02/01)

米国株、ダウ反発し368ドル高 賃金インフレの鈍化観測で ナスダック反発 – 日本経済新聞

【NQNニューヨーク=川上純平】31日の米株式市場でダウ工業株30種平均は反発し、前日比368ドル95セント(1.1%)高の3万4086ドル04セントで終えた。取引開始前に発表された2022年10~12月期の米雇用コスト指数が市場予想ほど上昇せず、インフレ鈍化につながるとの見方が広がった。米長期金利が低下し、ハイテク株が買われたのも相場を押し上げた。雇用コスト指数は前期比1.0%上昇と、伸び率

米バイデン政権 中国ファーウェイへの輸出全面禁止を検討か – nhk.or.jp

アメリカのバイデン政権が中国の通信機器大手「ファーウェイ」に対する輸出を全面的に禁止する措置を検討していると欧米の複数の…

2月に値上げされる食品や飲料5000品目超 再び値上げラッシュに – nhk.or.jp

今月値上げされる食品や飲料は5000品目を超えていることが、信用調査会社の調査でわかりました。信用調査会社は再び値上げラ…

投資家の「ディズニーランド」終わった、ブラックスワン著者が警告 – ブルームバーグ

ベストセラーとなった著書「ブラック・スワン」で2008年の金融危機を予言したナシーム・ニコラス・タレブ氏が投資家にメッセージを発している。痛みを伴う現実への回帰に備えろ、だ。

就業者数、コロナ前比27万人減 30〜40代男性戻らず – 日本経済新聞

【この記事のポイント】・2022年の就業者数、19年より27万人少なく・人口の減少に加え、雇用のミスマッチ響く・リスキリングなど労働移動の促進が急務人手不足が日本経済の回復の壁になっている。2022年の就業者数は新型コロナウイルス禍前の19年の水準に戻らなかった。人口減少や高齢化の加速が響いている。補助金で雇用を守るコロナ対策が成長産業への労働移動を妨げてきたとの指摘もある。潜在的な労働力の有効

米消費者信頼感指数、1月は予想外の低下-見通し悪化を反映 – ブルームバーグ

米国の消費者信頼感は1月に予想外の低下となった。景気と雇用市場に対する見通しの後退を反映した。

米雇用コスト、予想下回る伸び-利上げペース減速の論拠強まる – ブルームバーグ

米国では昨年10ー12月(第4四半期)、雇用コストの伸びが市場予想を下回った。インフレ鈍化の兆候が新たに示され、連邦公開市場委員会(FOMC)としては今週の会合で利上げ幅を縮小させる論拠が強まった格好だ。

トヨタの新社長に託された「フルモデルチェンジ」 – 東洋経済オンライン

「あの日は会議中に社長交代のニュースが飛び込んできて、一同驚愕でした」(トヨタ自動車の中堅社員)。トヨタは1月26日に社長交代を発表。4月1日付で豊田章男社長が退任し、内山田竹志氏の後任として代表取締役…

日銀会合 10年前の議事録公開 “2%物価目標を”安倍氏が要請 – nhk.or.jp

日銀は、2012年7月から12月までの金融政策決定会合の議事録を公開しました。12月の会合の直前に、当時の自民党の安倍総…

FRB、5月には利上げ停止の方向か-インフレ鈍化の傾向続けば – ブルームバーグ

米国のインフレ鈍化を示す証拠が今後さらに得られれば、米金融当局は3月21、22両日の連邦公開市場委員会(FOMC)会合後に利上げ停止の可能性を検討する方向にあると考えられる。その次の会合は5月2、3両日に開催が予定されている。

東北新幹線、車いす用の補助板つけたまま発車 清掃員が気づき外す:朝日新聞デジタル – 朝日新聞デジタル

東京発―新函館北斗・秋田行きの東北新幹線(17両編成)で31日昼過ぎ、車いす用の補助板をドアにつけたまま東京駅を一時走行するトラブルがあった。近くにいた清掃員がすぐに気づいて、補助板を外したという。…

渋谷の東急本店、55年の歴史に幕…閉じられたシャッターに多くの拍手 – 読売新聞オンライン

東京・渋谷の東急百貨店本店が31日に閉店し、55年の歴史に幕を下ろした。  最終営業日のこの日、店内は多くの買い物客でにぎわった。50年以上通ったという渋谷区の女性(76)は「食料品から洋服、雑貨まで全てここでそろえて

明治 ヨーグルトなど201品目 4月から値上げ(2023年1月31日) – ANNnewsCH

明治ブルガリアヨーグルトなどが再び値上げされます。明治はヨーグルトやプロテイン飲料、家庭用のチーズやバターなど201品目を4月1日から順次、値上げすると発表しました。 「明治ブルガリアヨーグルトLB81」400グラムが税抜きで270円から280円に引き上げられるなど、値上げ幅は約2%から13%です。 燃料代や乳牛…

株、楽観ムード揺り戻し 「100兆ドル」回復も頭打ち感(写真=ロイター) – 日本経済新聞

米連邦公開市場委員会(FOMC)の結果公表を控え、金融市場では行き過ぎた株高に警戒感が出てきた。早期利上げ停止観測と経済の「ソフトランディング(軟着陸)」シナリオが楽観ムードを醸成し、世界の株式時価総額は5カ月ぶりに100兆ドル(約1京3000兆円)を回復した。ところが中央銀行の「タカ派」姿勢継続と企業業績の停滞というリスクが改めて意識されている。世界の株式相場は勢いを失いつつある。1月30日

日本各地から世界まで!一目で分かる”衝撃ニュース”まとめてみました|TBS NEWS DIG – TBS NEWS DIG Powered by JNN

思わず息をのんでしまう、声が出てしまう。そんな一目で分かる”衝撃ニュース”をまとめてお送りします。カメラが捉えたまさかの映像、衝撃の瞬間をまとめました。#ニュース #ライブ #衝撃 ▼TBS NEWS DIG 公式サイト https://newsdig.tbs.co.jp/▼チャンネル登録をお願いします!http…

高速道路改修に新たに1兆円 NEXCO東日本など3社共同会見で発表|TBS NEWS DIG – TBS NEWS DIG Powered by JNN

老朽化した高速道路の道路や橋を改修するため、新たにおよそ1兆円が必要という試算を高速道路3社がまとめました。東日本、中日本、西日本の高速道路3社は、2014年、山梨県の中央自動車道笹子トンネルで起きた天井板崩落事故をきっかけとして、3兆円にのぼる改修を進めてきました。3社はきょう共同で会見を行い、定期点検などの結…

物価の優等生「たまご」最高値に コンビニ“たまご商品”一部販売休止も(2023年1月31日) – ANNnewsCH

今、大変なのが商品「たまご」です。 サンエース春岡店・宮下裕基店長:「今、たまごが昨年と比べて非常に高騰しています」 例年、たまごの価格は12月に上がり、1月に入れば落ち着いてくるとされているのですが…。 JA全農(全国農業協同組合連合会)たまごが31日午前9時に発表した卵Mサイズの卸売価格は、東京で1キログラム…

工場など屋根設置の太陽光パネルで発電 高値で電気買い取りへ – nhk.or.jp

企業の工場や倉庫などの屋根に太陽光パネルの設置を促そうと、経済産業省は、これらの場所に設置されたパネルで発電された電気を…

【中学受験2023】人気難関校倍率情報(2/1版)4模試偏差値情報 – リセマム

東京・神奈川の中学入試が2023年2月1日、解禁日を迎える。2月1日の入試実施校のうち、人気難関校の確定出願倍率と偏差値についてまとめる。

中国・オランダ外相が電話会談、先端半導体製造装置の輸出規制巡り切り崩しか – 読売新聞オンライン

【北京=大木聖馬】中国外務省によると、中国の 秦剛(チンガン) 外相は30日、オランダのウォプケ・フックストラ副首相兼外相と電話で会談した。米国が日本やオランダに働きかけている先端半導体製造装置の対中輸出規制について議