taki のすべての投稿

DIRECT2Dを試す、その2

前回はDirectXの初期化だけでしたが、今回はいよいよDirect2Dを使用していきます。

サンプルコードはこちらを参考。

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

前回作成したWindowにテキストを表示します。

※main関数は大して変更していないので省略。

#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>

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;
};
#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[] = L" 親譲りの無鉄砲で小供の時から損ばかりしている。小学校に居る時分学校の二階から";
    WCHAR wcText2[] = L"飛び降りて一週間ほど腰を抜かした事がある。なぜそんな無闇をしたと聞く人があるか";
    WCHAR wcText3[] = L"も知れぬ。別段深い理由でもない。新築の二階から首を出していたら、同級生の一人が";
    WCHAR wcText4[] = L"冗談に、いくら威張っても、そこから飛び降りる事は出来まい。弱虫やーい。と囃した";
    WCHAR wcText5[] = L"からである。小使に負ぶさって帰って来た時、おやじが大きな眼をして二階ぐらいから";
    WCHAR wcText6[] = L"飛び降りて腰を抜かす奴があるかと云ったから、この次は抜かさずに飛んで見せますと";
    WCHAR wcText7[] = L"答えた。";

    pRT->BeginDraw();
    pSolidBrush->SetColor(D2D1::ColorF(D2D1::ColorF::Blue));//フォント色変更:青
    pRT->DrawText(wcText1, ARRAYSIZE(wcText1) - 1, pTextFormat, D2D1::RectF(0, 0, 800, 20), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pRT->DrawText(wcText2, ARRAYSIZE(wcText2) - 1, pTextFormat, D2D1::RectF(0, 20, 800, 40), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pSolidBrush->SetOpacity(0.7f);//フォントの透明度変更:70%
    pRT->DrawText(wcText3, ARRAYSIZE(wcText3) - 1, pTextFormat, D2D1::RectF(0, 40, 800, 60), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pSolidBrush->SetColor(D2D1::ColorF(D2D1::ColorF::Black));//フォント色変更:黒
    pRT->DrawText(wcText4, ARRAYSIZE(wcText4) - 1, pTextFormat, D2D1::RectF(0, 60, 800, 80), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pRT->DrawText(wcText5, ARRAYSIZE(wcText5) - 1, pTextFormat, D2D1::RectF(0, 80, 800, 100), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pSolidBrush->SetOpacity(1.0f);//フォントの透明度変更:100%
    pRT->DrawText(wcText6, ARRAYSIZE(wcText6) - 1, pTextFormat, D2D1::RectF(0, 100, 800, 120), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pRT->DrawText(wcText7, ARRAYSIZE(wcText7) - 1, pTextFormat, D2D1::RectF(0, 120, 800, 140), pSolidBrush, D2D1_DRAW_TEXT_OPTIONS_NONE);
    pRT->EndDraw();

    pSwapChain->Present(0, 0);
}

サンプルと違うのは★の箇所。

GetDesktopDpi()を使用するのは非推奨らしく、ビルドエラーとなります。

そこで参照したのは以下のページ。

https://learn.microsoft.com/en-us/answers/questions/170411/creating-a-simple-direct2d-application-id2d1factor

    dpiX = (FLOAT)GetDpiForWindow(GetDesktopWindow());
    dpiY = dpiX;

に置き換えることでビルドが通ります。

経済ニュース(01/30)

東北電力の3月分の電気料金 2年ぶりの低水準続く|NHK 秋田県のニュース – nhk.or.jp

【NHK】東北電力はことし3月分の電気料金を発表し、多くの家庭が利用する国の認可を受けたプランの場合、政府の負担軽減策によって、平均的な家庭の電気料…

富裕層開拓の好機!?金融業界が税制改正の「贈与ニーズ急増」狙い虎視眈々 – ダイヤモンド・オンライン

生前贈与のルール改正時期が2024年に決まり、金融業界が沸いている。23年中の「駆け込み贈与」需要が見込めることに加え、富裕層や事業者向けの「相続時精算課税」制度の使い勝手が向上するからだ。両制度の利用を促すことは顧客資産に食い込む好機。税制改正をビジネスチャンスとして狙う金融業界の動向を追った。

電気代値上げどうなる?30日から本格審査 過去は圧縮も – 日本経済新聞

30日から大手電力会社が申請した家庭向け電気料金の値上げの審査が本格化する。住民などから広く意見を聞く公聴会がまず沖縄電力から始まる。いつ、どれぐらい料金が上がるのか。値上げの背景と今後の見通しをまとめた。・なぜ電気代が上がる?・値上げ幅はどうなる?・政府の電気代への補助金はいつから?

世界最大の純資産国、通貨に底力はあるか – 日本経済新聞

今年の金融市場はここまで、昨年のような大幅な円安進行を見せていない。日銀の緩和修正観測などを反映し、米国と日本の金利差が拡大しにくくなっていることが主因の一つだ。昨年は、世界最大の対外純資産を持つ日本の通貨が一本調子に売られることに疑問の声も上がったが、そもそも純資産国通貨は買われる通貨なのかといった声も聞かれる。最大の純資産国通貨であることは何を意味するのか。日本の対外純資産は、日本の企業や

トヨタ社長の電撃交代!「章男会長マター」として残る日野自の行く末は – ダイヤモンド・オンライン

トヨタの豊田章男社長が交代する。その発表は電撃的なものだった。問題として残るのが、不正問題に揺れる日野自動車の処遇だ。

スタートアップが勘違いしやすい「ブルーオーシャン戦略」の盲点 – ダイヤモンド・オンライン

【日経新聞掲載&有力紙書評続々】話題沸騰! たちまち3刷! 注目著者、初の著書! 創業9年目で売上300億円にしたアンカー・ジャパンCEOの猿渡歩が初めて語る“大逆転の新手法”。誰でも、何歳からでも、後発でも圧倒的速さで成長できるシンプルな習慣を初公開。27歳入社→33歳アンカーグループ最年少役員→34歳アンカー・ジャパンCEOになった著者が、参入したほぼ全製品カテゴリーでオンラインシェア1位になった秘密を解くカギは「6つのシンプルな習慣」──全体最適の習慣/バリューを出す習慣/学ぶ習慣/因数分解の習慣/1%にこ…

新型アルファードに久々ロータリーの復活!! 今年大注目の国内外メーカー5選(ベストカーWeb) | 自動車情報サイト【新車・中古車】 – carview! – carview!

2023年がスタートして、早1カ月。昨年2022年は、話題の新型ミドルクラスミニバンや軽BEVの登場、そして老舗セダンの大改革などが大いに話題となったクルマ業界。今年2023年も新型車の登場は多く計画されているが、なかでも今年注目すべきメ…

「金持ちは長財布も持っている」はもう古い? 最近の金持ちが持ち歩くものって? – Yahoo!ファイナンス

以前、「お金持ちは長財布を持っている」と話題になったことがありますが、それは、旧タイプのお金持ちの話。新タイプのお金持ちは、財布そのものを持ち歩かなくなりつつあります。 旧タイプのお金持ちは「現金」を持ち歩くたとえば、昔のお金持ちが持ち歩いていたものといえば、ルイ・ヴィトンのポー…

【マツダ2 改良新型】メッシュグリルと6MTは健在…スポルト+[詳細写真] – レスポンス

マツダは1月27日、コンパクトカーの『マツダ2』の改良新型を発表し、予約受付を開始した。今回は先代で人気を集めた「ブラックトーンエディション」のスポーティさをさらに高めたディーゼルエンジンモデル『XD SPORT+(クロスディー スポルトプラス)』を紹介する。

これは絶対に予測不可能! バーで見つかった忘れ物のバッグ、その驚きの中身とは – Newsweekjapan

<夜遊びに持っていくバッグには何を入れる? カードやメイク用品などの代わりにぎっしり詰まっていたものとは?> 女性はどこにでも小さなバッグを持って行くことが多いが、泥酔して店にバッグを忘れて帰ってしまうこともある。あるバーテンダーが最近、そんな忘れ物のバッグを発見。中身を確認したところ、衝撃的なものを目にしたという。 ■【動画】絶対に予想できない…バーに置き忘れられたバッグの中に入っていたものとは? 夜に遊びに出かける際、多くの女性がバッグに入れるのが銀行のカードやメイク用品、携帯電話だろう。だがその忘れ物の…

インナーイヤー型のイヤホン、私にとっての正解はコレでした – GIZMODO JAPAN

イヤホンに求める条件、3つ挙げるとしたらなんでしょう。私の場合は完全ワイヤレス・装着感が快適・見た目がカッコいいの3つ。なかなか条件に合ったものがなく、かれこれ4年近く同じイヤホンを愛用していたのですが、ついに出会っちゃいました。クリア×スティック型、絶対カッコいい Nothingから2022年の11月に新しく登場した「Ear (stick) 」というモデル。価格は16,800円(税込)です。

東北新幹線の福島トンネル 天井付近のコンクリート落下|NHK 福島県のニュース – nhk.or.jp

【NHK】29日未明、東北新幹線の福島駅近くのトンネル内で、天井付近のコンクリートの一部がはがれ、線路上に落ちているのが見つかりました。

29日午…

夫は69歳年金受給者、私は58歳無職です。夫と年齢差がある私は年金を繰上げ受給したほうがいい? – Yahoo!ファイナンス

老後のお金や生活費が足りるのか不安ですよね。老後生活の収入の柱になるのが「老齢年金」ですが、年金制度にまつわることは、難しい用語が多くて、ますます不安になってしまう人もいるのではないでしょうか。そんな年金初心者の方の疑問に専門家が回答します。今回は、年金のもらい方についての相談で…

前澤友作氏「シンママ婚活アプリ」炎上の重大盲点 – 東洋経済オンライン

実業家の前澤友作氏が監修したシングルマザーを対象とする婚活・恋活マッチングアプリ「コアリー(coary)」が1月17日リリースされた。ところがその直後に炎上し、翌日の1月18日には配信停止に至った。「#コアリー…

日本企業製の大型EVバス、伊予鉄でついにデビュー 新興EVモーターズ・ジャパン製 全国初 – 乗りものニュース

伊予鉄が広告塔役!

シリーズハイブリッド追加で人気再燃!「ダイハツ・ロッキー」【最新コンパクトカー 車種別解説】 – MotorFan[モーターファン]

トヨタ・ライズとともに売れ行き好調な「ダイハツ・ロッキー」。フロントフェイスがクールなイメージのライズに対して、ロッキーはアクティブで力強いフェイスが特徴だ。室内と荷室の広さは特筆モノ。どのパワーユニットを選択しても軽量ボディでスムーズで快適な操縦性、新たに追加された安全機能も併せて、SUV入門車として最適な一台だといえるだろう。 REPORT:岡島裕二(本文)/工藤貴之(写真解説) PHOTO:中野幸次 MODEL:河辺ほのか

47歳、貯金700万円。夫の仕事が安定せず、月収は20万円前後になりそうです – Yahoo!ファイナンス

住宅ローンは夫80歳まであります皆さんから寄せられた家計の悩みにお答えする、その名も「マネープランクリニック」。今回のご相談者は、コロナ禍により夫の仕事が安定せず、収入も少なくなることで悩む47歳の女性です。ファイナンシャル・プランナーの深野康彦さんがアドバイスします。相談者困っ…

おおカッコいい!! イメチェンで新型プリウスが燃費スペシャルをやめたワケとは? – ベストカーWeb

2022年11月に発表された新型プリウスは、これまでとは大きくコンセプトを変更していた。その一番の驚きは、全高を低めたシャープなスタイリングと、2Lエンジンを追加してパワーアップを図ったことだ。なぜプリウスは燃費スペシャルをやめたのだろうか?

【ぼっち】毎日生ビール218円&焼き鳥60円 居酒屋 まさや 北海道麻生店

今回も新規開拓地。

ホットペッパーで安い居酒屋が見つかったので、行ってみました。

中はきれいな店内で、賑わっているお店というよりかは、落ち着いて飲めるお店という感じでした。

平日で早い時間だったから混んでいなかったと言うのもあるかもしれん。

やはりなんと言っても安さでしょう。

ビール1杯218円、

焼き鳥も1本60円です。

その他のおつまみも美味しい。

非常に良かったです。

自宅からちょっと遠いですが、通う価値はありそうです。

ITニュース(01/29)

ForspokenはRadeon RX 400 / 500環境で動作しない – ニッチなPCゲーマーの環境構築Z

Forspokenは、Radeon RX 400シリーズおよびRX 500シリーズで動作しない模様です。海外メディアのTechPowerUpが報じました。 Redditでの報告によると、Polari…

【アーカイブ・封じ手】藤井聡太王将vs羽生善治九段 王将戦第3局(2023年1月28日) – 毎日新聞

第72期王将戦第3局の初日の封じ手をライブ配信しました。解説付き棋譜速報(対局から30日間無料)からご覧ください。AI評価値放送もあります。https://mainichi.jp/oshosen2023/schedule/王将戦特設ページはこちらhttps://mainichi.jp/oshosen2023王将戦…

「ChatGPT」で小説を書いている作家にAIを使ったらどうなったのかインタビュー、AIで小説を書く方法や倫理的な課題について一問一答 – GIGAZINE(ギガジン)

OpenAIが開発したチャットボット「ChatGPT」は、経営学修士課程(MBA)の最終試験で合格点を獲得したり、研究論文の著者として名を連ねたりといった活躍を見せており、AIを活用して創作を行う人も増えています。Leanne Leedsというペンネームでミステリー小説を執筆し、AmazonのKindleで矢継ぎ早に長編小説を発表している小説家のジェニファー・レップ氏が、IT系ニュースサイト・The Vergeのインタビューに回答しました。

OMEN 27u 4K ゲーミングディスプレイ レビュー:OMENシリーズで使いたい4K 144Hzディスプレイ – こまめブログ

HPの「OMEN 27u 4K ゲーミングディスプレイ」(以下、”OMEN 27u 4K”)は、27インチ4K(3840×2160ドット)でリフレッシュレート144Hzのゲーミングディスプレイです。高精細かつ遅延や残像の

Nianticの新作はバスケゲー。NBAファンが感じた、アツいところと突っ込みどころ – GIZMODO JAPAN

なんだかんだ、やっちゃうんだろうな。ポケモンGOなどの開発を手掛けた位置情報アプリや位置情報ゲームを製作するNiantic(ナイアンティック)から新作スマホ向けアプリ、『NBA All-World』の配信が開始されました。本作はアメリカのプロバスケットボールリーグ、NBAの公式ライセンスを取得しており、八村塁などの現役のNBA選手が登場するゲームとなっています。NBAファンの僕が、この新作アプリ

Xperia 1 Vの実機画像がリークか 1 IVと「見分けがつかない」レベル – スマホダイジェスト

ソニーの2023年版フラッグシップXperia、と言えば「Xperia 1 V」。ソニーが3年ぶりにMWC 2023に出展することが判明したため、この場でこのXperia 1 Vが発表されることが期待されていますが、その可能性についてはまだ…

ブラウザで開きすぎたタブやウインドウをリスト化して簡単に切り替え可能なブラウザ拡張機能「Tabist」 – GIGAZINE(ギガジン)

ブラウザーで大量のウインドウやタブを開いた結果、ページの管理が困難になった経験がある人は多いはず。Google ChromeおよびMozilla Firefox向け拡張機能の「Tabist」では、ウインドウやタブをリスト化することで簡単に切り替えることが可能とのことなので、実際に使用してみました。

Pixel Foldの一部機能判明。和訳でフリップ トゥ シーッとなんか楽しい – xPeria lEaker

さて今回Phone ArenaがGoogle Pixel Foldの一部スペックについて言及していることが判明したので簡単にまとめたいと思います。 さて今回Phone ArenaがGoogle Pixel Foldの一部スペックについて言及していることが判明したので簡単にまとめたいと思います。

iPhoneのカメラが壊れた!実体験から綴る、落とし穴だらけの修理プロセスとは? – Lifehacker JAPAN

残念ながら、iPhoneのカメラが壊れると、画面が割れた時のようなわけには行かず、修理は思っているほど簡単ではありません。

同じ運動なら外に出よう!認知機能が高まるとの研究結果 – GIZMODO JAPAN

ジムで運動するのとは、終わった後の爽快感が違う!運動は、身体はもちろん、脳にとってもよいことです。でも、ほんの短い時間であっても運動を屋外ですることは、さらにイイことみたいです。カナダのビクトリア大学の研究チームは、短い時間なら屋内で歩くより、外で歩いたほうが認知機能が高くなるという研究結果を出していました。短いウォーキングで効果が出た研究チームは30名の大学生を集めて、まずは15分間のウォーキ

手軽な「ディスプレイオーディオ」が勢力伸ばす!? 純正ナビとの違いはどんなとこ? 最新のカーナビ事情 – くるまのニュース

クルマの必須装備となった「カーナビゲーション」ですが、カーナビ専用機に加え、近年はスマートフォンやタブレット、あるいはそれを利用したディスプレイオーディオを活用するといったさまざまな選択肢があります。それぞれのメリットとデメリットを、実際に使っている人に聞いてみました。

iPhone SE(第4世代)〜幻になりそうな完全新機種の噂まとめ – iPhone Mania

Appleは、ホームボタンを搭載しないiPhone SEモデルを開発していると数年前から噂され、モデル名も、「iPhone SE Plus」「iPhone SE(第3世代)」「iPhone SE(第4…

ハクスラ×ソウルライクなアクションRPG『Ashen Knights: One Passage』「Steam Nextフェス」に登場―デモ版配信予定 – Game*Spark

戦闘スタイル、能力、敵、そして探索する場所も異なる2人の主人公を切り替えながらプレイしていきます。

経済ニュース(01/29)

最北の廃線「天北線」、代替バスすら消える現実 – 東洋経済オンライン

ローカル鉄道の廃止反対理由として、「鉄道がなくなると町がさびれてしまう」としばしば述べられる。遠隔地との交流が途絶え、経済的なダメージを受けてしまうとの考えからだ。しかし現実には、地域が衰退し鉄道の…

ソニーのカメラ生産、日米欧向けを中国から分離 – 日本経済新聞

ソニーグループは日米欧で販売するカメラの生産を中国からタイの工場に移管した。中国の工場は原則、中国向けの製品のみをつくる。米中対立の激化や「ゼロコロナ」政策に伴う都市封鎖で中国を世界的なサプライチェーン(供給網)の中核にするリスクが高まっている。供給網の機能不全の回避に向けて企業が備えを本格化しつつある。日米欧など中国以外で販売するカメラのほぼ全量をタイの工場での生産に切り替える。米中対立を受

政府 中国などへの先端半導体関連品目の輸出規制を検討へ – nhk.or.jp

アメリカが中国に対して、先端半導体や関連する製造装置の輸出規制を強化する中、政府は中国などを念頭にした輸出規制について検…

28日21:55現在、京阪線が運転見合わせ(→22:20運転再開) – 寝屋川つーしん

1月28日(土)21時06分ごろ、京阪本線の寝屋川市駅で人身事故が発生したようです。 京阪電車運行情報↓ その影響により、21時55分現在京阪本線(淀屋橋駅~三条駅)、鴨東線(三条駅~出町柳駅)、中之島駅(中之島駅~天満 […]

いよいよ発売秒読みだぜ!マツダ最大のSUV「CX-90」の登場が待ちきれない! – ベストカーWeb

マツダが北米市場に投入する「CX-90」の発売がいよいよ秒読みとなってきた。同車はマツダの開発したラージプラットフォームから生まれる同社最大の3列シートSUV。北米マツダが公開しているツイッターやYouTubeなどから、現時点での最新情報をまとめよう。

カラーコーデが198通り!? 新型「マツダ2」自在に選べるデザインがスゴい! 個性的すぎる仕様とは? – くるまのニュース

マツダのコンパクトカー「マツダ2」が大幅改良し、新たなグレードが設定されました。そのなかで「BD」グレードは全198通りのカラーコーディネートから選択することが可能だといいますが、どのような仕様なのでしょうか。

狙いは“タンス貯金” 75歳女性から現金1170万円を…詐欺G「かけ子のエース」逮捕 その手口とは? – ライブドアニュース – livedoor

詐欺グループの「かけ子のエース」と呼ばれていた容疑者が逮捕された。共犯の男たちと、75歳女性から現金1170万円などをだまし取った疑い。警察は、容疑者らが去年1年間で3億円以上を詐取した可能性があるとみている

JR西日本 雪で特急計113本が運休 (2023年1月28日掲載) – ライブドアニュース – livedoor

雪の影響でJR西日本は28日始発から一部区間で終日、運転を取りやめた。取りやめたのは、湖西線(堅田―近江塩津)▽播但線(寺前―和田山)▽舞鶴線(綾部―東舞鶴)――など。特急は同日午後7時15分現在、新大阪

テンバガーのDNA発見、革新的技術で「大相場の序曲奏でる6銘柄」 <株探トップ特集> | 特集 – 株探ニュース – 株探ニュース

―株はロマン! オンリーワン強みに業績変貌の可能性内包する魅惑の材料株を追う― 1月第4週の東京株式市場は、堅調な米国株市場を横にらみに1週間を通じてリスク選好ムードの強い地合いとなった。米国に続き日本でも企業の決算発表が徐々に本格化してくるなか・・・。

JR芸備線東城―備後落合間、29日も始発から運休 – 中国新聞デジタル

JR西日本は28日、大雪の影響で運転を見合わせている芸備線東城―備後落合間について、29日も始発から運休すると発表した。伯備線の特急「やくも」も同様に見合わせる。いずれも午後からの運転再開を目指す。…

年金暮らしに備えて、50代のうちに見直しておきたいこと4つ – Yahoo!ファイナンス

年金暮らしの人が抱える悩みって?年金暮らしの方からのご相談をおうかがいしていると、夫婦2人世帯の年金収入はおよそ20万円ぐらいの方が多く、また、生活に余裕がないという悩みもよく聞きます。「年金だけでは生活に余裕がない」という状況を解決するには、「収入を増やす」か「支出を減らす」か…

「2022 JO1 1ST ARENA LIVE TOUR KIZUNA」Blu-ray & DVD初回プレス分(初回生産分)封入“応募抽選券(シリアルナンバー)”特典決定! – JO1

いつもJO1を応援いただきまして誠にありがとうございます。2023年3月15日(水)発売「2022 JO1 1ST ARENA LIVE TOUR KIZUNA」Blu-ray & DVDの各形態には、初回プレス分(初回生産分)に限り“応募抽選券(シリアルナンバー)”が封入されています。こちらのシリアルナンバーでご応募いただける特典の詳細をお知らせいたします。※いずれの賞も規定の応募期間にご応募いただいた方のみが対象となりますので、ご注意ください。【JO1イベントご参加にあたり】昨今の特典会において、…

高速道路の無料化、事実上の棚上げ 現行の2065年から50年延長の方針固める (2023年1月28日掲載) – ライブドアニュース – livedoor

国土交通省は高速道路の料金を利用者が支払う期間を、現行の2065年から50年延長する方針を固め、2月上旬にも通常国会に関連法案の改正案を提出する。老朽化対策や4車線化の費用を確保するためで、無料化が事

食品値上げ2月再びピーク 4千品目超、家庭紙の出荷価格も | 共同通信 – 共同通信

昨年から加速してきた食品の値上げが2月、再びピークを迎える。帝国データバンクの昨年末時点の調査による…

月12万円も 光熱費高騰の嘆き – goo.ne.jp

真冬と真夏になると「電力需給ひっ迫注意報/警報」が資源エネルギー庁から発令されるようになってしばらくになる。電気が足りなくてブラックアウトするようなことにならな…

「チケトレ」における宝塚歌劇チケットの取り扱いについて | ニュース | 宝塚歌劇公式ホームページ – 宝塚歌劇

宝塚歌劇では、やむを得ないご事情でご観劇ができなくなった場合、公式チケットトレードリセール「チケトレ」のご利用をお願いしております。「チケトレ」におきましては、2023年2月以降の開催公演分のチケット

東急百貨店本店 最後の週末営業日を迎えにぎわう 東京 渋谷 – nhk.or.jp

東京 渋谷のシンボルとして半世紀以上にわたって営業し、今月31日に閉店する東急百貨店本店は、最後の週末の営業日を迎え、大…

大雪で特急サンダーバードが一部運休 1月28日JR西日本 – 福井新聞

JR西日本によると1月28日午後0時45分現在、北陸線での大雪と倒竹のため特急サンダーバードの一部運転を取りやめた。 また午前10時40分ごろ、北陸線の細呂木駅(福井県あわら市)ー牛ノ谷駅(同)間で倒竹を発見したため、福井駅(同福井市)ー小松駅(石川県小松市)間の運転を見合わせていたが、同日午後0時半に運転を再開した。この影響で福井から金沢方面の一部列車に30分~95分の遅れがでている。⇒1月29日にかけて大雪に警戒…北陸地方の予想降雪量 取りやめた特急サンダーバードは次の通り。

トヨタ新社長は車好きの技術屋、30年ぶり理系出身…予想外の後任打診に「冗談なのかと」 – 読売新聞オンライン

4月1日付でトヨタ自動車の新社長に就くことが決まった佐藤恒治執行役員(53)。「車好き」を自認する技術畑の経営トップが、世界最大の自動車メーカーをどう変革していくのか。佐藤氏の言葉から、今後の方向性を読み解いた。 (佐

100日後にフリーランスになるITエンジニア 20日目

先日は、健診で中性脂肪、コレステロール、血糖値が引っかかったので、その病院に行ってきました。

近所だったのですが、近所にこんな病院があったなんて知らなかった。

何度も前を通ってるやん。

診察自体は、数日前に心臓の精密検査で血液検査を行っているので、

その結果を共有してくれていたので、改めて採血する必要は無く、問診だけで完了しました。

今後の方針としては、

血糖値の方は、健診の時から数値が良くなっているので、このまま死活習慣を改善して様子を見ましょう、とのこと。

しかし、中性脂肪やコレステロールは危険な数値なので、薬を飲んで下げましょう、という事でした。

食生活の改善、とはいっても、

糖尿病だから何が良くて、何がダメという明確な基準は無くて、

ざっくりとして、糖質の取り過ぎはダメ、タンパク質と食物繊維を多めに、と言う具合しかやりようが無くて、

じゃあ、何を食えば良いのか、非常に悩ましいところではあります。

少なくとも、夕食も自炊になるのかな・・・

飯作のめんどくさい。

ITニュース(01/28)

「Final Factory」,2023年第3四半期に販売開始。宇宙を舞台に宇宙規模の巨大工場を建設して自動化を進めていこう – 4Gamer.net

Never Gamesは,PC向けの新作ソフト「Final Factory」を2023年第3四半期に発売すると発表し,Steamのストアページをオープンした。プレイヤーは,宇宙ステーションを建造してそれらを接続し,オリジナルの生産ラインを作ってさまざまなモノを作り出し,さらに工場を拡大させていくという。

【吉田輝和のVR絵日記】VRゲームをプレイしていたと思ったら、俺は異世界に召喚されていた件『オノゴロ物語 ~The Tale of Onogoro~』 – Game*Spark

今回は、あまた株式会社が贈る『オノゴロ物語 ~The Tale of Onogoro~』のPlayStation 4版!本作は、大正時代の日本とよく似た異世界で、巫女のハルを手助けしながら、様々な謎やパズルを解いていくVRアクションアドベンチャーゲームです。

「マドリカ不動産2 -新物件の間取り謎-」のSteamストアページがオープン。印刷した紙の間取り図にメモを取りながらプレイする謎解きゲーム – 4Gamer.net

ギフトテンインダストリは2023年1月26日,「マドリカ不動産2 -新物件の間取り謎-」のSteamストアページを公開した。本作は,印刷した紙の間取り図にメモを取りながらプレイする“アナログ×デジタル謎解きゲーム”だ。時にはゲームをクリアするために,間取り図を折ったり,切ったり,丸めたりすることもある。

サムスン製高速SSD「990 PRO」の寿命が短期間で46%縮む事態が発生 – GIGAZINE(ギガジン)

サムスンが2022年12月に発売したSSD「990 PRO」は、7450MB/sという非常に高速な読込速度を保持していることがアピールされており、PC愛好家から注目を集めています。ところが、「買ったばかりの990 PROの寿命が急速に縮んでいく」という現象が複数のユーザーによって報告されています。

グリーンエネルギーのムラを補い世界で稼働? 電力を位置エネルギーに変換する「重力バッテリー」実用化へ – Newsweekjapan

<電力を位置エネルギーに変換して貯蔵するシステム「重力バッテリー」は、太陽光発電…

効率重視の現代人へ。倍速歩行をアシストする電動スケート – GIZMODO JAPAN

汗もかかずに高速移動! 現代人はとにかく忙しく、近年は動画も授業も倍速で視聴したい、タイパ(タイムパフォーマンス)重視の人が増えています。歩く時間ですら時短したいと思うのは自然なことのようで、世界では走る速度で歩けるeローラースケートが続々と作られています。歩行拡張スケートは流行り?ギズモードで取り挙げたeローラースケート「Moonwalkers」と同じコンセプトの「Rollkers」がフランス

プロセスごとにCPU使用率を制限できる「BES – Battle Encoder Shirase」v1.8.0.28がテスト公開 ほか – 窓の杜

AIで画像のウォーターマークを無料で削除できるツール「Watermark Remover」が登場して新たな議論が勃発 – GIGAZINE(ギガジン)

インターネットに公開されている画像には、透かしとして小さな図案や文字が「ウォーターマーク」として入っていることがあります。このウォーターマークは画像の著作権表示などに使われていますが、このウォーターマークをAIの力で画像からキレイに消し去るウェブアプリ「Watermark Remover」が登場して議論を招いています。

次世代Mac Proの拡張性のなさにファンから心配の声 – iPhone Mania

今年後半に発売が見込まれる新型Mac Proは、これまでのIntelベースからAppleシリコンベースへと移行するとみられていますが、拡張性が現在議論の対象となっています。Mac Proユーザーの中に…

RX 7900専用の「AMD Software Adrenalin Edition」がFORSPOKENに対応 – 4Gamer.net

北米時間2023年1月25日,AMDは,Radeon RX 7900シリーズ専用のドライバソフト「AMD Software Adrenalin Edition 23.1.2 for AMD Radeon RX 7900 Series」(以下,Adrenalin 23.1.2 for RX 7900)をリリースした。名称のとおりRadeon RX 7900シリーズ専用で,それ以外のAMD製GPUやAPUにはインストールできない。  本バージョンはWHQL(Windows H…

CASETiFYに『美少女戦士セーラームーン』モデル登場 – GIZMODO JAPAN

『美少女戦士セーラームーン』の連載開始30周年を記念して、カスタムスマホケースで知られるCASETiFY(ケースティファイ)がコラボアイテムを作ったんですって。

8万円台でM2搭載の新型「Mac mini」、処理能力でMac Pro(66万円)を上回る事態に – Buzzap!

「パズル&サバイバル」,日本の収益がアメリカを抜いて世界最大に。Sensor Tower発表 – 4Gamer.net

Sensor Towerが公式サイトをアップデートし,2020年12月に日本でサービスが始まった「パズル&サバイバル」に関するレポートを掲載した。2022年の収益は,アメリカを抜いて日本市場が世界最大になり,スマホ向けパズルRPGジャンルの収益成長量でも,上位に入ったという。

3840×2400ドット16型OLED搭載で1.17kg。Ryzen搭載の超軽量ノート – PC Watch

日本エイサー株式会社は、3,840×2,400ドット表示対応の16型OLEDパネルを搭載しながら、重量を約1.17kgに抑えた超軽量ノートPC“Swift Edge”「SFA16-41-A65Z/W」(本体色:グレーシャーブルー)、「SFA16-41-A76Z/K」(オリピンブラック)を発売した。直販価格は16万9,800円。

Galaxy Z Flip4を折りたたまなくなった理由 – GIZMODO JAPAN

折りたたみたいのにたたんでない。そろそろイケるのではと思っていました、折りたたみスマートフォン。でも高い。いきなり飛び込むには高すぎる。なので、ギズモード編集部で購入したGalaxy Z Flip4をこれ幸いと数ヶ月借りて使ってみました。結論から言うと、買いません。理由は、スペックやプロモ動画、人の使い方を見て想像していたのと自分のリアルな使い方がまるで違ったからです。いや、絶対買わないのではな

開発期間6時間!?制作にAIを駆使した本格ファンタジーカードゲーム『Spell Siege』発表 – Game*Spark

ボードゲームカフェのマーケティングマネージャーも務める本作の開発者は、自分のカードゲームを作ることが夢だったといいます。

経済ニュース(01/28)

「レクサス」強く…トヨタ社長に昇格、佐藤恒治氏の素顔とは?|ニュースイッチ by 日刊工業新聞社 – ニュースイッチ Newswitch

トヨタ自動車は26日、豊田章男社長(66)が4月1日付で退任し、佐藤恒治執行役員(53)が社長に昇格する人事を発表した。豊田社長は代表権のある会長に就く。豊田社長が進めてきた商品や地域を軸とした経営改…

米PCEコア価格指数、一段と減速-小幅利上げ観測を後押し – ブルームバーグ

昨年12月の米個人消費支出(PCE)価格指数は、総合指数および食品とエネルギーを除くコア指数が共に前年同月比ベースで一段と鈍化し、過去1年余りで最も低い伸びとなった。一方で支出は減少し、米金融当局が利上げペースをさらに減速させるとの見方が強まった。

米国株への流入低調、経済「ハードランディング」の兆候-BofA – ブルームバーグ

投資家はほぼ1年ぶりのハイペースで欧州株を買っている。一方、米国株への資金流入はリセッション(景気後退)懸念の中で低調だ。バンク・オブ・アメリカ(BofA)のリポートが示した。

【衝突事故】雪の踏切で…車を運転していた高齢男性が死亡 – 日テレNEWS

27日午前9時半ごろ、宮城県大崎市のJR陸羽東線の踏切で、列車と車の衝突事故が起きました。列車は車を約150メートル引きずったということです。事故から約1時間半後、乗客は毛布を巻いて線路上を歩いて避難しました。列車の乗客と乗務員約30人にけがはありませんでしたが、車を運転していた高齢の男性が死亡しました。(202…

日銀 大規模金融緩和策でETF買い入れ 株価押し上げ なぜ恒常的政策に | NHK – nhk.or.jp

日本株の市場でその存在感の大きさから「クジラ」にも例えられた日銀。株価指数に連動するETFという金融商品の買い取りを12…

電気料金 今春に再び値上げへ この先どうなるの? – nhk.or.jp

きょう発表されたことし3月請求分の電気料金。電気料金の負担軽減策によって、平均的な家庭で1月の請求分と比べて1600円か…

Chat GPT、スタンフォード大期末試験で使われまくる – GIZMODO JAPAN

スタンフォード中退生が創業したAI企業がスタンフォードを襲う⁉AIなんでも回答マシン「Chat GPT」の開発元OpenAIにマイクロソフトが100億ドル(約1兆3000億円)もの巨額追加投資を決めて、グーグルやアマゾンの足元を不気味に脅かしていますが、地元の名門スタンフォード大学では早くも期末試験においてChat GPTを大いに参考にする学生が現れ、大学側が対応に追われています。1兆円の賭け1

偽物のエアバッグを販売か 大手ロゴ付け…全国初摘発 – FNNプライムオンライン

警察署へ入るあごマスクの男。もう1人の男は、カメラに気付き、慌てて視線を外した。警視庁は、大手自動車メーカーの偽物のエアバッグを販売した疑いで、パキスタン国籍の男4人を逮捕した。偽物のエアバッグ販売が摘発されるのは、全国で初めて。群馬・桐生市の中古車販売店の社員、イスラール・ミアン・アリ容疑者(36)とナワーズィ…

楽天三木谷氏がウクライナへ発電機500台を寄贈 – ケータイ Watch

楽天グループ代表取締役会長兼社長の三木谷浩史氏によるウクライナへの発電機500台の寄贈プロジェクトが完了した。楽天グループが25日に発表した。

【マツダ2 改良新型】目を引く“新しい顔”、思い切ったアプローチの理由は? – レスポンス

『マツダ2』の大幅商品改良で注目なのは、そのデザインだ。表情を変え、新たなカラーやコーディネートの選択肢を提案する。

【1月27日】岡山県などJR西ヒアリングへ AIアナNEWS – 山陽新聞デジタル【さんデジ】

1,岡山県などJR西ヒアリングへ2,岡山市中心部で4年ぶり積雪3,強く正しく温かい警察官へ決意

むしろ逆効果? 高速道「深夜割引」大幅見直しの意図 NEXCO「物流業界の行動変容を」 – 乗りものニュース

高速道路の深夜割引について大幅見直しが発表されました。これまで打つ手がなかったという課題を解消する目的がありますが、新制度で新たな懸念も生じているようです。

グリーンエネルギーのムラを補い世界で稼働? 電力を位置エネルギーに変換する「重力バッテリー」実用化へ – Newsweekjapan

<電力を位置エネルギーに変換して貯蔵するシステム「重力バッテリー」は、太陽光発電…

日産、4代目セレナなど52万台をリコール…ECOモータ式アイドリングストップ車で火災事故発生 – レスポンス

日産自動車は1月27日、ECOモータ式アイドリングストップを搭載する4代目『セレナ(C26)』など27万台について、火災のおそれがあるとして国土交通省にリコール(回収・無償修理)を届け出た。

大手電力の不正閲覧、6社に拡大 新たに中部、中国で判明 | 共同通信 – 共同通信

経産省の電力・ガス取引監視等委員会は27日、大手電力が競合関係にある新電力の顧客情報を不正に閲覧して…

JR西日本、28日は6路線で計画運休 大雪予報など受け – 日本経済新聞

強い冬型の気圧配置の影響による大雪や強風の予報を受け、JR西日本は27日、湖西線(堅田―近江塩津)、山陰線(園部―福知山など)をはじめ6路線の一部区間で、28日始発から計画運休すると発表した。このほかに京都線、神戸線、大阪環状線など京阪神の主要路線でも遅れや運休の可能性があるとしている。27日は山科駅(京都市山科区)での信号トラブルによって、朝の通勤・通学時間帯に琵琶湖線、

東証大引け 小反発 米株高で、利益確定売りが上値抑える – 日本経済新聞

27日の東京株式市場で日経平均株価は小幅に反発し、大引けは前日比19円81銭(0.07%)高の2万7382円56銭だった。前日の米株式相場の上昇を受けた買いが先行した。半面、最近の一方的な相場上昇を警戒した戻り待ちや利益確定の売りも出やすかった。国内主要企業の決算を見極めたいとの雰囲気も積極的な買いを見送らせ、日経平均は下落に転じる場面もあった。26日の米株式市場では、2022年10~12月期

話題株ピックアップ【夕刊】(2):ロート、信越ポリ、邦チタ | 注目株 – 株探ニュース – 株探ニュース

ロート製薬<4527>が8日続伸。26日の取引終了後、動物用再生医療支援サービスを提供するJ-ARM(大阪市阿倍野区)と資本・業務提携を締結したと発表しており、好材料視された。伴侶動物(コンパニオンアニマル・・・。

Direct2Dを試す

まだ案件が決まったわけでは無いので、

ネットでよい記事が無いかを探していたところ、

こちらが見つかりました。

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

#pragma once

#include <windows.h>

class Window
{
public:
    HRESULT InitWindow(HINSTANCE hInstance, int nCmdShow);
    static HWND GethWnd();
private:
    static HWND g_hWnd;
};
#include "Main.h"
#include "DirectX.h"

HWND Window::g_hWnd = nullptr;

//--------------------------------------------------------------------------------------
// 前方宣言
//--------------------------------------------------------------------------------------
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;

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

    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"DirectX11の初期化(クラス化)",
        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;
}
#pragma once

#pragma comment(lib,"d3d11.lib")
#include <d3d11_1.h>
#include <directxcolors.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;
};
#include "Main.h"
#include "DirectX.h"

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

DirectX11::~DirectX11()
{
    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 = 0;
#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);

    return S_OK;
}

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

今使用しているVisual Studio2022でも動作しました。

とはいえ、やっていることはDirectXを初期化して表示しているだけなので、

ここまではほぼテンプレの処理。

大事なのは、ここに何を書くか、という処理ですね。

ITニュース(01/27)

投資グループ中心メンバー 所得税24億円滞納で差し押さえ – nhk.or.jp

「暗号資産に投資すれば多額の配当が得られる」などとして国に無登録で投資を募った罪で有罪判決が確定した投資グループの中心メ…

「DbD」開発元による新作「Meet Your Maker」のPC向けオープンβテストは2月6日~14日に実施へ。Steamアカウントがあれば参加可能 – 4Gamer.net

「Dead by Daylight」を展開するBehaviour Interactiveは本日,新作「Meet Your Maker」のオープンβテストを,日本時間2023年2月6日23:00から2月14日13:59まで実施すると発表した。Steam Nextフェスの一部として実施される予定(つまりPC向け)で,Steamアカウントがあれば誰でも参加できる。

ハワイ上空に出現した謎の光るグルグル。これはなんだ? – GIZMODO JAPAN

UFOじゃなかった。1月18日、ハワイはマウナケアの上空に謎の渦が出現。移動しながらクルクル回る渦とその中心にある強い光。これは一体なんなのでしょうか…。まさかUFO…じゃなくて、なんとSpaceXによるファルコン9ロケット打ち上げが関係している可能性が高いのだそう。マウナケアにある自然科学研究機構国立天文台ハワイ観測所のすばる望遠鏡が渦の様子を捉えていました。ツイートや動画もアップされています

Google製プログラミング言語「Dart」v3.0 alphaがプレビュー公開 ほか – 窓の杜

HomePod miniの温湿度センサーはこう使います – GIZMODO JAPAN

めちゃくちゃ便利です。実はHomePod miniには、温湿度センサーが搭載されていたことがわかっていましたが、なぜか機能として解放されていませんでした。最新バージョンにアップデートすることで、いつでも部屋の温度と湿度が確認できるようになったんです。これは嬉しい!HomePod miniで部屋の温度と湿度を確認する方法 HomePod miniの温度/湿度センサーを有効にするには、本体を最新バー

盲目の経営コンサルが指南する、リーダーが「覚醒するための条件」 – Forbes JAPAN

『情熱大陸』出演で注目される起業家や、数々の大企業が秋波を送るスタートアップなど、多くの経営者が絶大な信頼を寄せる「盲目の経営コンサルタント」をご存知だろうか。経営者たちの答えのない苦しみに対峙し、彼らを『覚醒』させてきた成澤俊輔に、本誌編…

M2 Mac miniのベンチマークスコアがMac Proを上回る! – iPhone Mania

2月3日発売のM2チップ搭載Mac miniのベンチマークスコアが、Mac Proのベンチマークスコアを上回っていると、テック系YouTuberが証拠画像とともにTwitterに投稿しました。価格差8…

ASUS,OC仕様のGeForce RTX 3060 Ti搭載カード計2製品を発売 – 4Gamer.net

DUAL-RTX3060TI-O8GD6X,TUF-RTX3060TI-O8GD6X-GAMING 配信元 ASUS JAPAN 配信日 2023/01/26 ASUSよりNVIDIA GeForce RTX 3060 Tiを搭載したビデオカード、DUAL-RTX3060TI-O8GD6XとTUF-RTX3060TI-O8GD6X-GAMINGを発表 ASUS JAPAN株式会社は、NVIDIA GeForce RTX 3060 Tiを搭載したビデオカード、DUAL…

SNKのSTG「プレヒストリックアイル2 原始島」がAndroid/iOS「アケアカNEOGEO」より本日配信 – GAME Watch

SNKは、Android/iOS用シューティング「プレヒストリックアイル2 原始島 アケアカNEOGEO」の配信を本日1月26日より開始した。価格は650円(税込)。

PS5の3万円高級コントローラー「デュアルセンス エッジ」は、値段に見合った満足感と使いやすさを提供してくれるゲーマーを考えまくりなコントローラーだった – 電ファミニコゲーマー

コントローラーって選択肢が多くないですか?漠然とした書き出しで記事をはじめてしまいましたが、事実として最近はサードパーティ含めて多種多様なコントローラーが発売されていますよね。  私自身は基本的に、PS4でいうDUALSHOCK 4やPS5でいうDualSenseといった、ゲーム機メーカー自身のコントローラーを買っておけば問題ないと考えているのですが……。

『アトミックハート』がゴールド(製品化の最終段階にあるソフトウェアの完成)を報告。作中に登場する重要な施設「3826施設」の紹介映像も公開 – 電ファミニコゲーマー

MundfishはアクションRPG『Atomic Heart』のゴールド(製品化の最終段階にあるソフトウェアの完成)を報告した。

ロシアのGoogleこと「Yandex」の40GB超のGitリポジトリが漏えい – GIGAZINE(ギガジン)

大規模データベースのリーク情報やハッキングツールなどを提供する場として人気のサイバー犯罪フォーラムBreachForums上で、borderline2023というユーザーがYandexの40GB超のGitリポジトリをリークしたと主張しています。

楽天モバイル、ホームルーター専用の新料金プラン「Rakuten Turbo」&5G対応ルーター「Rakuten Turbo 5G」 – ケータイ Watch

楽天モバイルは、データ容量無制限のホームルーター専用料金プラン「Rakuten Turbo」の提供を開始した。キャンペーンが実施されており、3年間は月額3685円で利用できる。4年目以降の料金は月額4840円。

次世代Mac ProはメモリもGPUもアップグレードできない!? – iPhone Mania

今年、または来年発売と予測される次世代Mac Proについて、Bloombergのマーク・ガーマン記者が、RAM(メモリ)もGPUもアップグレードできないモデルになるとの予測を、Twitterに投稿し…