トップページ⇒tech
44コメント11KB

ライブラリ作成スレ

■ このスレッドは過去ログ倉庫に格納されています
0001つくね2009/03/15(日) 08:10:52
作りましょう!
0002デフォルトの名無しさん2009/03/15(日) 08:19:03
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0003つくね2009/03/15(日) 08:38:45
DirectXをDXライブラリやHSP並に簡単に使用できるようなやつ。
0004つくね2009/03/15(日) 08:40:15
言語はC++。
0005デフォルトの名無しさん2009/03/15(日) 16:47:31
ゲーム?既存のものとの違いは?
0006つくね2009/03/15(日) 17:42:15
違いというと難しいけどFBX形式の直読み込みとかは付けたい
できるかどうかわかんないけど
0007デフォルトの名無しさん2009/03/17(火) 07:28:32
何も出来ないまま終わるクセにスレを立てて自己顕示、嘲笑
0008デフォルトの名無しさん2009/03/17(火) 23:20:14
・DirectXをDXライブラリやHSP並に簡単に使用できるようなやつ。
・FBX形式の直読み込みとかは付けたい。
・言語はC++
仕様をまとめるとDXライブラリ上でFBXローダーを作るのが最短だね。

世のライブラリやらOSやらスクリプトやらを自作する人は、
「既存のものでは○○がダメなので自作しました。」というものがほとんど。
そうしないと車輪の再発明という嘲笑の的になるので、無理矢理にでもこじつけたりする。
まずは作る動機がないと。
0009つくね2009/03/17(火) 23:39:38
作る動機はDirectXを使いこなせるようになりたいって事
でもスキンメッシュがまだ理解できてない
0010デフォルトの名無しさん2009/03/18(水) 11:01:41
ラッパーじゃないかそれ?
0011つくね2009/03/18(水) 19:32:34
ラッパーライブラリとも言うかもしれないね
0012デフォルトの名無しさん2009/03/18(水) 20:24:45
低レベルAPIを使いこなしてない奴がラッパを作ると、ろくなものにならない法則。
0013デフォルトの名無しさん2009/03/18(水) 23:09:53
>>1はそれでいいけど、一緒に作りましょう!って声を掛けた人にはどんなメリットが?
DirectX入門者を集めて、みんなで勉強がてらライブラリを作りましょうってことかな?
0014つくね2009/03/19(木) 12:34:21
ソースを公開して入門者が勉強。
上級者の手直しとかも期待します。
0015デフォルトの名無しさん2009/03/21(土) 02:39:59
つまり、まずは>>1が大枠を作るってことか。期待してます。
なんかできたら告知お願い。
0016デフォルトの名無しさん2009/03/21(土) 22:01:48
初心者の内は車輪の再発明が大切さ
0017デフォルトの名無しさん2009/03/22(日) 02:45:26
まあがんばれ。言いだしっぺがすごくがんばれば
賛同してくれる人が出てくるよ。
0018つくね2009/03/22(日) 09:08:20
http://karinto2.mine.nu/ulink/down/1237680323.zip

まずは、フォントを簡単に設定、文字表示まで

ライブラリだけどlibとかdllにはせず基本的には全てヘッダファイルのみにするつもり
0019デフォルトの名無しさん2009/03/24(火) 16:56:23
・インクルードガードをつけよう。
・ヘッダにグローバル変数を入れるとヘッダを宣言したところで
 モリモリ変数が作られてしまうゾ!回避方法はあるので調べてみよう。

コメントを細かく入れてる所は勉強してる感が伝わって好感が持てる。
0020つくね2009/03/24(火) 21:37:33
http://karinto.mine.nu/ulink/uploader/download/1237898129.zip
パスワードはメール欄

インクルードガードを付けました
2Dテクスチャの描画を付けました
0021つくね2009/03/24(火) 21:42:54
なんか混雑してるみたいなんでソースのみファイル
http://karinto2.mine.nu/ulink/down/1237898527.zip
0022つくね2009/03/24(火) 23:59:06
http://down11.ddo.jp/uploader/download/1237906590.zip/attatch
MIDI再生追加
0023つくね2009/03/25(水) 00:06:07
パスワードはdxです。
0024デフォルトの名無しさん2009/03/25(水) 02:36:14
*.pdb *idb *.obj *.ncb *.suo *.ilk
はupする前に削除しても大丈夫。
0025デフォルトの名無しさん2009/03/28(土) 14:09:12
DXwrapper.sln
DXwrapper.vcproj
DXwrapper.h
Main.cpp
ソースだけに注目するなら、これ以外は不要だな。

DirectMusicは既に廃止されているので、対応はお勧めできない。
で、調子に乗ってx64でビルドしてみたけど、
x64VistaだとDirectMusicの64ビットバイナリは未提供、ってオチだった。
Direct3DのRetainedModeみたく、DLLごと闇に葬り去るつもりか。
0026つくね2009/03/28(土) 18:34:02
じゃあ64bit環境ではMIDIはどうやって使ってるの?
DirectMusicに代わる何かがあるの?
0027デフォルトの名無しさん2009/03/28(土) 19:23:34
MCI使えということのはず。
0028つくね2009/03/28(土) 20:05:48
MCIは糞
DirectMusicの機能を備えたdllとか無いのかな?
0029デフォルトの名無しさん2009/03/28(土) 20:53:32
XAudioは高機能DirectSoundって位置付けだしなあ。
DirectShowにMIDI Parser/Rendererがあるから、
それ以降は自分で何とかしる、って所かねえ。
0030つくね2009/03/28(土) 21:47:25
DirectShowでの再生を試みるお

PCのプロバイダがアク禁で今のDXwrapper.hをうpできないお
0031つくね@携帯2009/03/29(日) 15:34:15
http://down11.ddo.jp/uploader/download/1238307548.zip/attatch

パスワードはメール欄

現在のDXwrapperです
2Dのゲームなら結構作れる状態になりました
0032デフォルトの名無しさん2009/03/29(日) 23:15:12
がんばれ。
DXライブラリにはない3D機能を期待してるよ。
0033デフォルトの名無しさん2009/03/30(月) 03:28:34
Sound周りは時代の流れ的にもOpenALがいいんじゃないか?
後、ヘッダで公開するならOpenMPに対応すると他のライブラリに比べても
長所ができるんじゃないか、といってみる。
0034つくね2009/03/30(月) 18:12:59
openMPってマルチスレッドとどう違うんですか?
いまいち利点がわからない
それと普通のPCで使えるのかも疑問
0035デフォルトの名無しさん2009/03/30(月) 19:15:36
OpenMPは、マルチスレッドを明示的に書かなくても適当にスレッドを分けて管理してくれるライブラリですよ。
IntelCompilerを使っているなら、pragma指定を書いておくだけで使える便利物。
そうでなくても、スレッド数の設定やら同期の管理やら、面倒なことは任せられるからかなり楽。
# 勿論、その分若干(管理ロジックが走る所為もあって)パフォーマンスは落ちるけどね。
# あー、マルチスレッドプログラミングに慣れた人が書いた究極のコードと較べてってことで。
0036つくね2009/03/30(月) 23:25:11
MCIとDirectMusicを切り替えれるようにしました
曲のポジションがDMは開始時の無音を含んでいるのに対してMCIは無音は含まない仕様になっているようだ

openAL…
考えときます
0037デフォルトの名無しさん2009/03/31(火) 00:33:38
http://www.4gamer.net/games/029/G002923/20081224069/
OpenALに関してはこういう話もある。対応するに値するか微妙なところだ。
0038つくね2009/03/31(火) 19:53:07
OpenALってCreativeのカードじゃなくても使えるの?
0039つくね2009/04/01(水) 01:17:48
http://down11.ddo.jp//uploader/download/1238516180.zip/attatch

3Dに対応しました
アニメーション無しXFileのみですが…

パスワードはdxです。
0040デフォルトの名無しさん2009/04/01(水) 18:54:32
お。進んでるね。クラスのオーバーライドが解るなら
Init(),MainLoop(),Release()をクラス化してみては?
MainLoop()内のBeginScene(),EndScene(),Flip()あたりも内包できるんじゃない?

0041つくね2009/04/01(水) 20:17:51
それをやると冗長なコードになってしまうのでは?
メインの処理を継承するという事?
0042デフォルトの名無しさん2009/04/01(水) 22:02:42
そう。例えばこんな感じ。

static App *s_pApp = NULL;

class App
{
protected:
 App()
 {
  s_pApp = this;
 }

public:
 virtual void Init(){}
 virtual void Main() = 0;
 virutal void Release(){}
};

メインループはAppを継承してもらう。
s_pAppがNULL以外ならAppのInitやらMainやらReleaseを呼ぶ。将来においても
Init(),MainLoop(),Release()等が関数名固定で中身を書き換える方針なら
まあこのままでもいいかもしれないけど。
0043つくね2009/04/01(水) 23:04:50
プログラミングスタイルを切り替えれるようにして実装します

DirectShowでの再生も追加しました
0044つくね2009/04/05(日) 01:14:07
スキンメッシュ解析中…
■ このスレッドは過去ログ倉庫に格納されています