a21_acl01
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* aclライブラリ(2021年版)
-(by [[K]], 2021.11.21)
** (0) はじめに
-aclライブラリは、OSやCPUの違いを吸収し、共通のやり方で簡...
-2020年9月に最初のバージョン(00b, 00f)を公開しました。
|kcube.c : 112行 (ライブラリのsampleより)| |inva...
|http://k.osask.jp/files/pic20200831a.jpg||http://k.osask...
** (1) ダウンロード&インストール
** [1-1]Windows版(32bit, 64bit両対応)
-''[1-1-1]はじめに''
--ここで紹介する方法は、Windows上でMinGW-5.1.6(32bit)を...
--このやり方だと64bit対応アプリは作れませんが、32bitアプ...
--64bit版の開発環境を構築するのももちろん可能ですが、32bi...
--自力で64bit版のMinGWをインストールして、あとは以下を適...
-''[1-1-2]MinGW-5.1.6のダウンロード&インストール''
--http://k.osask.jp/files/MinGW516.exe (155KB) をダウンロ...
--実行するとカレントディレクトリに作業用ファイルをたくさ...
--実行して順当に進んでいくと「Download and install」か「D...
--さらに進んでいくと「Previous」「Current」「Candidate」...
--そしてインストール構成を選ぶ画面になります。ここは「Min...
--そしてインストールするディレクトリを聞かれます。ここも...
--あとはまあ適当にやっていればインストールは終わるでしょ...
-''[1-1-3]aclライブラリのダウンロード&インストール''
--以下をダウンロードします。
--[ver.0.1a Windows専用型] http://k.osask.jp/files/acl01a...
--[ver.0.1b Windows専用型] http://k.osask.jp/files/acl01b...
--このアーカイブを展開し、中のacl_winフォルダを得て、適当...
--まあでも説明の便宜上、以下では「c:¥acl_win」に置いたと...
--これでインストールは完了です。
-''[1-1-4]aclライブラリのテストとアプリのコンパイル手順''
--コマンドプロンプトを開いて、acl_winフォルダの中のsample...
--そこで以下のように入力します。gccのコマンドラインオプシ...
prompt>c:\MinGW\bin\gcc.exe -m32 -Wl,-s -Wno-unused-func...
--長いですね・・・。これを毎回入力するのは苦痛でしょうか...
c:\MinGW\bin\gcc.exe -m32 -Wl,-s -Wno-unused-function -O...
--これを「ccacl.bat」で保存したとして以下では説明します。
--このccacl.batがあれば、
prompt>ccacl grd
--だけでコンパイルとリンクができるようになります。
--無事に実行ファイルができたら、
promp>grd
--で実行してみてください。美しいグラデーションが出るはず...
--他にも
prompt>ccacl mandel
prompt>ccacl kcube
prompt>ccacl invader
--でコンパイル&リンクができますので、実行してみてくださ...
** [1-2]SDL2.0版(Windowsでもこれでできますが、[1-1]のバ...
-''[1-2-1]はじめに''
--ここで紹介する方法は、SDL2.0を利用した一般的な方法です。
--CコンパイラやSDL2.0をインストールして利用可能にする方法...
--[参考] https://www.libsdl.org/ に行って「Download / SDL...
-''[1-2-2]aclライブラリのダウンロード&インストール''
--以下をダウンロードします。
--[ver.0.1a SDL2.0対応型] http://k.osask.jp/files/acl01a_...
--[ver.0.1b SDL2.0対応型] http://k.osask.jp/files/acl01b_...
--このアーカイブを展開し、中にあるacl_sdl2フォルダを得て...
--これでインストールは完了です。
-''[1-2-3]aclライブラリのテストとアプリのコンパイル手順''
--Cコンパイラのコマンドラインオプションに、SDL2.0向けのオ...
-I(acl_sdl2へのパス) -DAARCH_X64
---ただし上記の例はx64の場合です。ほかのCPUの場合は、-DAA...
---このオプションでライブラリにアーキテクチャ情報を与えて...
|-DAARCH_X86|x86(32bit)の場合|
|-DAARCH_X64|x64(64bit)の場合|
|-DAARCH_ARM32|ARM(32bit)の場合|
|-DAARCH_AARCH64|ARM(64bit)の場合|
--この方法で、sample内のgrd.c, mandel.c, kcube.c, invader...
--実行して問題なく動くことを確認できたら、ライブラリのテ...
** (2) その他のaclライブラリ利用例
-(準備中)
** (3) 主な提供関数
|w = aOpenWin(xsiz, ysiz, title, mod)|差異吸収|00b~|グラ...
|w = aOpenWinEx(xsiz, ysiz, title, mod)|差異吸収|01a~|拡...
|aFlushAll(w)|差異吸収|00b~|グラフィックバッファの内容を...
|aLeapFlushAll(w, msec)|差異吸収|00b~|前回のflushからmse...
|aWait(msec)|差異吸収|00b~|指定された時間の間sleepします...
|i = aInkey(w, mod)|差異吸収|00b~|キー入力を検出します。|
|aSetPix(w, x, y, c)|描画関数|00b~|グラフィックバッファ...
|c = aRgb8(r, g, b)|便利関数|00b~|RGB値(0~255)から、24b...
|c = aGetPix(w, x, y)|描画関数|00b~|ウィンドウ上の画素の...
|aFillRect(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|グラ...
|aDrawRect(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|グラ...
|aDrawLine(w, x0, y0, x1, y1, c)|描画関数|00b~|グラフィ...
|aFillOval(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|グラ...
|aDrawFillOval(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|...
|aDrawStr(w, x, y, b, c, s)|描画関数|00b~|文字列を描画し...
|aFill(w, x, y, c)|描画関数|01a~|指定された座標から同色...
|aDrawOvalCent(w, x, y, a, b, c)|描画関数|01a~|中心座標...
|aFillOvalCent(w, x, y, a, b, c)|描画関数|01a~|中心座標...
|aClrKeybuf(w)|便利関数|00b~|キーバッファをクリアします。|
|i = aInkeyWait(w, mod)|便利関数|00b~|何かキーが入力され...
|fullCol = aGetPal(w, c)|便利関数|01a~|[WinExのみ]カラー...
|aEch(w, x, y, ch, c, b)|描画関数|01a~|指定された座標に...
|aCls(w, c)|描画関数|01a~|ウィンドウの描画範囲全体をクリ...
|ch = aGetEch(w, x, y)|描画関数|01a~|[WinExのみ]画面上の...
|c = aGetEchCol(w, x, y)|描画関数|01a~|[WinExのみ]画面上...
|b = aGetEchBak(w, x, y)|描画関数|01a~|[WinExのみ]画面上...
|aEchBox(w, xsiz, ysiz, x, y, ch, c, b)|描画関数|01a~|拡...
|ch = aGetEchBox(w, xsiz, ysiz, x, y)|描画関数|01a~|[Win...
|c = aGetEchBoxCol(w, xsiz, ysiz, x, y)|描画関数|01a~|[W...
|b = aGetEchBoxBak(w, xsiz, ysiz, x, y)|描画関数|01a~|[W...
|aScroll(w, xsiz, ysiz, x, y, dx, dy, mod, ch, c, b)|描画...
|aGrPrintf(w, x, y, c, b, s,...)|描画関数|01a~|グラフィ...
|aEchSav(w, x, y, ch, c, b)|描画関数|01a~|[WinExのみ]描...
|aEchRst(w)|便利関数|01a~|[WinExのみ]aEchSav()で保存した...
|aWaitKey(w, keycode)|便利関数|01a~|指定されたキーが入力...
|i = aInkey_waitRC(w, msec)|便利関数|01a~|[WinExのみ]aCl...
|i = aInkey_waitR(w, msec)|便利関数|01a~|[WinExのみ]aWai...
|dx = aMoveDx(keycode)|便利関数|01a~|もしkeycodeがカーソ...
|dy = aMoveDy(keycode)|便利関数|01a~|もしkeycodeがカーソ...
|a = aSaturateInt(a, i0, i1)|便利関数|01a~|もしaがi0より...
|||||
|aErrExit(s, ...)|便利関数|00b~|エラーメッセージをvprint...
|q = aErrExitP0(p, s, ...)|便利関数|00b~|もしp==0であれ...
|p = aMalloc(siz)|便利関数|00b~|比較的高速なmallocです。|
|aFree(p, siz)|便利関数|00b~|比較的高速なfreeです。ただ...
|r = aXorShift32()|便利関数|01a~|乱数を返します。|
|r = aRnd(n)|便利関数|01a~|0~(n-1)の乱数を返します。|
|aArySetInt(a, i0, i1, v)|便利関数|01a~|AInt a[]な配列に...
|aAryMovInt(a, i1, i0, n)|便利関数|01a~|a[i0]からn個の要...
|i = aMaxInt(i0, i1)|便利関数|01a~|i0とi1のうち、大きい...
|i = aMinInt(i0, i1)|便利関数|01a~|i0とi1のうち、小さい...
|ARep(n)|便利マクロ|01a~|{ }の範囲をn回繰り返します。実...
|ARep0(n, i)|便利マクロ|01a~|ループカウンタを指定できるA...
|i = aArgMaxRndInt(a, i0, i1)|便利関数|01a~|a[i0~(i1-1)...
-描画関数は全て便利関数
--描画関数は、関数名の末尾にOptを付けた関数も存在します。...
---AOPT_Cf : カラーコードはパレット番号ではなく、24bitカ...
---AOPT_Rf : 座標指定は拡張キャラクタ単位ではなく、ピクセ...
---AOPT_RfCf : Rf+Cf
---AOPT_Gn : この描画では aGetEch バッファに書き込まない
---AOPT_GnCf : Gn+Cf
---AOPT_GnRf : Gn+Rf
---AOPT_GnRfCf : Gn+Rf+Cf
終了行:
* aclライブラリ(2021年版)
-(by [[K]], 2021.11.21)
** (0) はじめに
-aclライブラリは、OSやCPUの違いを吸収し、共通のやり方で簡...
-2020年9月に最初のバージョン(00b, 00f)を公開しました。
|kcube.c : 112行 (ライブラリのsampleより)| |inva...
|http://k.osask.jp/files/pic20200831a.jpg||http://k.osask...
** (1) ダウンロード&インストール
** [1-1]Windows版(32bit, 64bit両対応)
-''[1-1-1]はじめに''
--ここで紹介する方法は、Windows上でMinGW-5.1.6(32bit)を...
--このやり方だと64bit対応アプリは作れませんが、32bitアプ...
--64bit版の開発環境を構築するのももちろん可能ですが、32bi...
--自力で64bit版のMinGWをインストールして、あとは以下を適...
-''[1-1-2]MinGW-5.1.6のダウンロード&インストール''
--http://k.osask.jp/files/MinGW516.exe (155KB) をダウンロ...
--実行するとカレントディレクトリに作業用ファイルをたくさ...
--実行して順当に進んでいくと「Download and install」か「D...
--さらに進んでいくと「Previous」「Current」「Candidate」...
--そしてインストール構成を選ぶ画面になります。ここは「Min...
--そしてインストールするディレクトリを聞かれます。ここも...
--あとはまあ適当にやっていればインストールは終わるでしょ...
-''[1-1-3]aclライブラリのダウンロード&インストール''
--以下をダウンロードします。
--[ver.0.1a Windows専用型] http://k.osask.jp/files/acl01a...
--[ver.0.1b Windows専用型] http://k.osask.jp/files/acl01b...
--このアーカイブを展開し、中のacl_winフォルダを得て、適当...
--まあでも説明の便宜上、以下では「c:¥acl_win」に置いたと...
--これでインストールは完了です。
-''[1-1-4]aclライブラリのテストとアプリのコンパイル手順''
--コマンドプロンプトを開いて、acl_winフォルダの中のsample...
--そこで以下のように入力します。gccのコマンドラインオプシ...
prompt>c:\MinGW\bin\gcc.exe -m32 -Wl,-s -Wno-unused-func...
--長いですね・・・。これを毎回入力するのは苦痛でしょうか...
c:\MinGW\bin\gcc.exe -m32 -Wl,-s -Wno-unused-function -O...
--これを「ccacl.bat」で保存したとして以下では説明します。
--このccacl.batがあれば、
prompt>ccacl grd
--だけでコンパイルとリンクができるようになります。
--無事に実行ファイルができたら、
promp>grd
--で実行してみてください。美しいグラデーションが出るはず...
--他にも
prompt>ccacl mandel
prompt>ccacl kcube
prompt>ccacl invader
--でコンパイル&リンクができますので、実行してみてくださ...
** [1-2]SDL2.0版(Windowsでもこれでできますが、[1-1]のバ...
-''[1-2-1]はじめに''
--ここで紹介する方法は、SDL2.0を利用した一般的な方法です。
--CコンパイラやSDL2.0をインストールして利用可能にする方法...
--[参考] https://www.libsdl.org/ に行って「Download / SDL...
-''[1-2-2]aclライブラリのダウンロード&インストール''
--以下をダウンロードします。
--[ver.0.1a SDL2.0対応型] http://k.osask.jp/files/acl01a_...
--[ver.0.1b SDL2.0対応型] http://k.osask.jp/files/acl01b_...
--このアーカイブを展開し、中にあるacl_sdl2フォルダを得て...
--これでインストールは完了です。
-''[1-2-3]aclライブラリのテストとアプリのコンパイル手順''
--Cコンパイラのコマンドラインオプションに、SDL2.0向けのオ...
-I(acl_sdl2へのパス) -DAARCH_X64
---ただし上記の例はx64の場合です。ほかのCPUの場合は、-DAA...
---このオプションでライブラリにアーキテクチャ情報を与えて...
|-DAARCH_X86|x86(32bit)の場合|
|-DAARCH_X64|x64(64bit)の場合|
|-DAARCH_ARM32|ARM(32bit)の場合|
|-DAARCH_AARCH64|ARM(64bit)の場合|
--この方法で、sample内のgrd.c, mandel.c, kcube.c, invader...
--実行して問題なく動くことを確認できたら、ライブラリのテ...
** (2) その他のaclライブラリ利用例
-(準備中)
** (3) 主な提供関数
|w = aOpenWin(xsiz, ysiz, title, mod)|差異吸収|00b~|グラ...
|w = aOpenWinEx(xsiz, ysiz, title, mod)|差異吸収|01a~|拡...
|aFlushAll(w)|差異吸収|00b~|グラフィックバッファの内容を...
|aLeapFlushAll(w, msec)|差異吸収|00b~|前回のflushからmse...
|aWait(msec)|差異吸収|00b~|指定された時間の間sleepします...
|i = aInkey(w, mod)|差異吸収|00b~|キー入力を検出します。|
|aSetPix(w, x, y, c)|描画関数|00b~|グラフィックバッファ...
|c = aRgb8(r, g, b)|便利関数|00b~|RGB値(0~255)から、24b...
|c = aGetPix(w, x, y)|描画関数|00b~|ウィンドウ上の画素の...
|aFillRect(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|グラ...
|aDrawRect(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|グラ...
|aDrawLine(w, x0, y0, x1, y1, c)|描画関数|00b~|グラフィ...
|aFillOval(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|グラ...
|aDrawFillOval(w, xsiz, ysiz, x0, y0, c)|描画関数|00b~|...
|aDrawStr(w, x, y, b, c, s)|描画関数|00b~|文字列を描画し...
|aFill(w, x, y, c)|描画関数|01a~|指定された座標から同色...
|aDrawOvalCent(w, x, y, a, b, c)|描画関数|01a~|中心座標...
|aFillOvalCent(w, x, y, a, b, c)|描画関数|01a~|中心座標...
|aClrKeybuf(w)|便利関数|00b~|キーバッファをクリアします。|
|i = aInkeyWait(w, mod)|便利関数|00b~|何かキーが入力され...
|fullCol = aGetPal(w, c)|便利関数|01a~|[WinExのみ]カラー...
|aEch(w, x, y, ch, c, b)|描画関数|01a~|指定された座標に...
|aCls(w, c)|描画関数|01a~|ウィンドウの描画範囲全体をクリ...
|ch = aGetEch(w, x, y)|描画関数|01a~|[WinExのみ]画面上の...
|c = aGetEchCol(w, x, y)|描画関数|01a~|[WinExのみ]画面上...
|b = aGetEchBak(w, x, y)|描画関数|01a~|[WinExのみ]画面上...
|aEchBox(w, xsiz, ysiz, x, y, ch, c, b)|描画関数|01a~|拡...
|ch = aGetEchBox(w, xsiz, ysiz, x, y)|描画関数|01a~|[Win...
|c = aGetEchBoxCol(w, xsiz, ysiz, x, y)|描画関数|01a~|[W...
|b = aGetEchBoxBak(w, xsiz, ysiz, x, y)|描画関数|01a~|[W...
|aScroll(w, xsiz, ysiz, x, y, dx, dy, mod, ch, c, b)|描画...
|aGrPrintf(w, x, y, c, b, s,...)|描画関数|01a~|グラフィ...
|aEchSav(w, x, y, ch, c, b)|描画関数|01a~|[WinExのみ]描...
|aEchRst(w)|便利関数|01a~|[WinExのみ]aEchSav()で保存した...
|aWaitKey(w, keycode)|便利関数|01a~|指定されたキーが入力...
|i = aInkey_waitRC(w, msec)|便利関数|01a~|[WinExのみ]aCl...
|i = aInkey_waitR(w, msec)|便利関数|01a~|[WinExのみ]aWai...
|dx = aMoveDx(keycode)|便利関数|01a~|もしkeycodeがカーソ...
|dy = aMoveDy(keycode)|便利関数|01a~|もしkeycodeがカーソ...
|a = aSaturateInt(a, i0, i1)|便利関数|01a~|もしaがi0より...
|||||
|aErrExit(s, ...)|便利関数|00b~|エラーメッセージをvprint...
|q = aErrExitP0(p, s, ...)|便利関数|00b~|もしp==0であれ...
|p = aMalloc(siz)|便利関数|00b~|比較的高速なmallocです。|
|aFree(p, siz)|便利関数|00b~|比較的高速なfreeです。ただ...
|r = aXorShift32()|便利関数|01a~|乱数を返します。|
|r = aRnd(n)|便利関数|01a~|0~(n-1)の乱数を返します。|
|aArySetInt(a, i0, i1, v)|便利関数|01a~|AInt a[]な配列に...
|aAryMovInt(a, i1, i0, n)|便利関数|01a~|a[i0]からn個の要...
|i = aMaxInt(i0, i1)|便利関数|01a~|i0とi1のうち、大きい...
|i = aMinInt(i0, i1)|便利関数|01a~|i0とi1のうち、小さい...
|ARep(n)|便利マクロ|01a~|{ }の範囲をn回繰り返します。実...
|ARep0(n, i)|便利マクロ|01a~|ループカウンタを指定できるA...
|i = aArgMaxRndInt(a, i0, i1)|便利関数|01a~|a[i0~(i1-1)...
-描画関数は全て便利関数
--描画関数は、関数名の末尾にOptを付けた関数も存在します。...
---AOPT_Cf : カラーコードはパレット番号ではなく、24bitカ...
---AOPT_Rf : 座標指定は拡張キャラクタ単位ではなく、ピクセ...
---AOPT_RfCf : Rf+Cf
---AOPT_Gn : この描画では aGetEch バッファに書き込まない
---AOPT_GnCf : Gn+Cf
---AOPT_GnRf : Gn+Rf
---AOPT_GnRfCf : Gn+Rf+Cf
ページ名: