メインカテゴリーを選択しなおす
Intel oneAPI Construction KitをインストールしてRISC-Vのリファレンス実装を動かしてみた
ホットコーヒーが美味しい季節 SYCLについて調べていく中で,oneAPI Construction Kitというものがあると知ったのでインストールして動かしてみた. oneAPI Construction Kit (OCK)とは OCKをインストールする準備 必須ライブラリのインストール LLVM 17のインストール oneAPIサンプルプログラムのダウンロード OCKのダウンロードとインストール サンプルプログラムの実行 まとめ oneAPI Construction Kit (OCK)とは OCKはDPC++コンパイラと自前のアーキテクチャを繋ぐためのもの. つまり,SYCLのカーネルを…
St. Valentine's Day C++からYAMLファイルを読み込む必要があり,色々調べたのでまとめる. 以下,環境はmacOS Sequoia(バージョン15.2)である. yaml-cppのインストール 簡単なYAMLファイルの読込み 階層的なYAMLファイルの読込み yaml-cppのインストール まず,C++からYAMLを扱うためのライブラリをインストールする. いくつかあるらしいが,情報が多かったyaml-cppというライブラリをインストールした. macOSではHomebrewでインストールできる. $ brew install yaml-cpp 簡単なYAMLファイルの読…
もう梅が咲いてるね 少しOSよりの技術を勉強する機会があったので,備忘録的に残そうと思う. 今回はC/C++で親プロセスと子プロセス間をパイプで通信する方法をまとめる. 子プロセスの生成 パイプによるプロセス間通信 サンプルプログラム 子プロセスの生成 子プロセスを作るには,forkシステムコールを使う. fork()を呼び出すと,呼び出したプロセスのコピーが作られ,呼び出したプロセスが親プロセス,新しく作られたプロセスが子プロセスとなる. このとき,子プロセスのためのアドレス空間が新たに確保される. 子プロセスは親プロセスのコピーなので,fork()後も同じプログラムを実行する. 子プロセス…
【Linux】親プロセス内のタイマで同期しながら子プロセスと周期的な通信をする
夜桜,綺麗だね 前回の記事では,パイプを使った基本的なプロセス間通信をまとめた. 今回は,そのパイプによる通信を周期的に行うために,タイマ割込みを使ってみた. 具体的には,親プロセスでタイマ用のスレッドを作り,定期的にメインスレッドにシグナルを送ってもらう. メインスレッド側ではシグナルを待機しておき,シグナルが来たらパイプに書き込む. だが,私はマルチスレッド/マルチプロセスのプログラムについては素人なので,この実装が適切なのかは分からないことを先に断っておく. なお,環境はUbuntu 22.04 LTSである. タイマ用スレッド サンプルプログラム タイマ用スレッド 一定時間ごとにメイン…
余談(18)NEAC2200アセンブラ開発(9)メモリーパッチ修正で当プログラム単体動作は正常動作まで到達
デバッグで発見した不良ステートメント箇所がたくさんあれば、新たにカードパンチを行い、そのデータを別のMT(磁気テープ)に記録して、マスターMTにマージして、修正を加えて、新たに別MTを作成します。これが、最新のマスター版となります。 しかし、デバッグ途中で発見した不良個所が見つかるごとにそのような手順を踏んでいるとそれへの対応時間が必要なのです。しかも、マシンを独占できるのは定時以降の夜間なので…
CTFで問題を解いている中で、学んだ・知った知識を小ネタ集としてまとめました。当たり前すぎる内容が多いかもしれませんが、誰かの役に立てれば幸いです。
デザインパターンの一つ、Iteratorパターンを勉強してみました。今回はQtとC++を使って、簡単な(無意味な)GUIアプリを作ってみました。使い勝手はわかったつもりですが、果たして使う時が作るのかは謎です。
Template Methodパターンを使って簡単なアプリを作ってみた
デザインパターンの一つ、Template Methodパターンを勉強してみました。今回はQtとC++を使って、簡単な(無意味な)GUIアプリを作ってみました。テンプレートを使うように実装することで、コードの構造が綺麗になるのかも?というのが実感できました。
Factory Methodパターンを使って簡単なアプリを作ってみた
デザインパターンの一つ、Factory Methodパターンを勉強してみました。今回はQtとC++を使って、不思議なGUIアプリを作ってみました。Template Methodパターンを理解してからの方がいいかも?
[C++] 宣言時のconstとポインタ変数の関係について・・・
宣言時のconstとポインタ変数の関係は結構複雑です。constと*の位置関係ではなく、もっとロジカルに覚えられるように、まとめておきます。
C++を触っていると、出てくるのがポインタ変数なんですが、毎回ちょくちょく忘れてしまいます。 あれ、*ってつけるんだっけ・・・ あれ、この場合って&? で、結局エディタのauto correct機能に頼るんですよね。そろそろ抜け出したい。 なので、書き残しておきます。
C++プログラムを書いていて、関数の引数ってどういう形で渡すのがいいのかいまいちわかってませんでした。結論でいうと、参照渡しが一番いいんですね〜ってことで。それぞれを簡単にまとめたいと思います。
デザインパターンの一つ、Singletonパターンを勉強してみました。今回はQtとC++を使って、不思議なGUIアプリを作ってみました。
シングルトンのプログラムを書いてる時に、コピーコンストラクタを書かなくてはいけなかったので、備忘録としてまとめておきます。
AbstractFactoryパターンを使って簡単なアプリを作ってみた
デザインパターンの一つ、AbstractFactoryパターンをQtとC++を使って勉強してみました。実際にアプリを作ってみることで、パターンの使い方を学びたいと思います。
今週はアヤの前日譚の全体修正を行なっていました! 来週からは本格的にゲームエンジンの作業に戻る予定です。 実はしんき創作では自ブランド用の新作ゲームエンジンを作っています。その名も「 BMGC 」です!
最近ずっと自作のゲームエンジンいじってますがこれからもしばらくかかりっきりになりそうです(;^ω^) タイトルの通り、マルチスレッド対応に向けて作業を進めています。 DXライブラリ使ってた時はライブラリがシングルスレッド用だったので関係ないやーと思ってまし...
前に意気揚々と アロケータを作った記事 をUPしたのですが、unique_ptrで利用しようとするとカスタムデリータを実装する必要がありました。 ん?カスタムデリータ・・・・・・?初耳だなぁ(;^ω^) ■とりあえずunique_ptrでアロケータ使ってみる
ようやく一歩前進です! Live2DをC++で使うためにメモリを確保したり解放したりするもの(アロケータ)を用意しないといけない問題にぶち当たって いるのは自分だけかもしれませんが 、完成しました! Live2Dではメモリを確保する際にアドレスの位置を指定された...
Windows PCでの言語ごとの開発環境構築方法とHello Worldと表示させる方法
WindowsのPCでプログラミングを学ぶためには、各言語の開発環境を構築する必要があります。本記事では、Windows PCで各言語の開発環境を構築する方法と、言語ごとにHello Worldを画面表示させるコードを紹介します。Javaの開発環境構築Javaは、Windows PCで最も人気のある言語の1つです。Javaを実行するためには、Java Development Kit(JDK)をダウンロードする必要があります。構築手順1.JDK
普段はVisualStudio2022で開発しているんですが、移植性を考えてクロスプラットフォーム開発環境であるCMakeを使ってみたい! ということでとりあえずやってみよう! ■今週のゲーム制作:CMakeのお勉強と自作ゲームのMODプログラミング ...
■今週のゲーム制作:ライブラリ制作とシナリオの独自システム開発 C++を学び始めて早8年。 過去のフォルダを漁っているといろんな関数作ってたな~としみじみ。一時は全ての関数を管理できるリストをExcelで作ったこともありました。 プロジェクトが膨らんでくる...
最近生まれたてのGitHubアカウントでプログラムの海を泳いでます。 いろんな実装方法とか書き方を知ってパワーアップしてる感じがします。感じがするだけかも(笑) とはいえ自分の中ではエラー処理の考え方が変わったり、基本的な記述方法がスネークケースに変わったりした...
■今週のゲーム制作:ウィンドウプロシージャとメモリアロケータ自作 今週は久しぶりにDXライブラリの中身を読んでいました。 前はちんぷんかんぷんだったんですけど前よりもプログラミングのスキルが少し上がったのか、何やってるのかが読める・・・・・・気がする! 自...
■今週のゲーム制作:ボタンUI!!! ここ2週間ずっとボタンUIと戦ってます。てごわい。。。( ;∀;) ボタンUIといいながら入力ソースの管理やメインループとシーンの構造、イベントをボタン→シーン→メインループに送信する仕組みなどなども作っていました。 ...
■今週のゲーム制作:ボタンUIとプログラミング! 何度も作っては壊してを繰り返しているプログラムとまた戦ってます。 なかなかお見せできる成果がないんですが、最近はプログラミング作業の配信も始めてみました。 ありがたいことに来てくださる方がいらっしゃ...
■今週のゲーム制作:キャプションバーとタイトル画面 今週はUIとプログラミングを進めています。 キャプションバー(ゲームタイトルが書いてあるウインドウの上の部分)がようやく形になってきました・・・! まだボタンを押しても何も起こりませんが(笑)機能...
matplotlib-cpp は、Python およびその科学計算用ライブラリ NumPy のためのグラフ描画ライブラリ matplotlib を、C++ から利用できるようにしたヘッダーオンリーライブラリです。 MIT ライセンス に従っています。 matplotlib...
(gcc)(C++)マングリングされた文字列をデマングリングする
データの型を調べようとして typeid().name()をやっても、簡潔な文字列しか返って来ません i は int となんとなく分かりますが、 x の long long や y の unsigned long long は 知らないともう想像も付きません、 この簡潔な文字を デマングリングすることで こちらが期待している文字列を取得することが出来ます、 以下に デマングリングのサンプルを書いておきます。 #include <cxxabi.h> #include <cstdlib> #include <iostream> // 使用する場合は .cppファイルと同じディレクトリに この内容を…
ゲームのウィンドウの角がデフォルトで丸くなる件【Windows11】
おニューのパソコンで早速作ってるゲームやってみるか! よし、ちゃんと動いてるな。ん? なんかゲーム画面の角丸くね? ということで、今回は開発者サイドで↑を修正するという記事です。(言語はC++) プレイヤーサイドの方は↓のサイトで角丸をなくすツールが紹介されていた...
難易度順にプログラミング言語の選び方をまとめたのでプログラミング言語選びの参考にしてみてください。JavaScript、Pythonは初心者がプログラミング言語を選択する上で入りやすい言語です。
制作中のADV「明日、初めて彼女と❤」はツイッターで出会った二人のストーリーなんですが、 実際にゲームからツイートできるような機能があったらいいかもな~と思って実装してみました! 今回はその実装にあたって調べたことをまとめています。 なので続きはゲームを作っている方向け...