なぜVBは扱いが低いのか (200レス)
なぜVBは扱いが低いのか http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
レス栞
あぼーん
151: 名前は開発中のものです。 [] 2013/01/31(木) 08:48:10.87 ID:wVU/jdLo cZuhgiqX どうやらロックの意味は理解できたようだな。ひとつ勉強になっただろ。 では逆に問う。君はGCの利点として何か実感できるものがあるのか? GCのある言語とそうでない言語で同じ動作をするプログラムを組んだとして、 あきらかにGCの優位性を感じる場面に遭遇できるのはどのようなケースだ? ちなみに自分はVB5からのユーザーだが、APIは当たり前のように使っている。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/151
153: 名前は開発中のものです。 [] 2013/01/31(木) 12:36:26.25 ID:wVU/jdLo DirectXライブラリならDX7ベースのものを作った。ところで、その口ぶりなら当然 自分もそのぐらいは作ったんだろうな。CPUで演算したデータをバック・スクリーン サーフェスに転送する場合、ロックもかけず、APIも使わず、どーやーって 転送しているんだ?おしえてくれよ。 スマートポインタ使うと、アプリの速度が上がるとでも言いたいのか? 俺が聞いたのはコーディングの話じゃない。実行上の有利性だ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/153
156: 名前は開発中のものです。 [] 2013/01/31(木) 16:10:41.97 ID:wVU/jdLo 馬鹿だなあ、ライブラリ自体をVBで作ったんだ。 バックサーフェスのLockメソッドを実行して、引数の構造体からポインタを 取得し、APIの movememory を使って転送する。 ちなみにDX9のフレームバッファに直接書き込む場合は、メソッドがあるので APIは使わないようだが、ロックはしなければならない。 おまえさんのライブラリではどーやってんのかなあ?答えてないぞ。 なにしろ>>152で「DirectXラッパぐらい」って言ってんだから、「ぐらい」なんだろ。 簡単にできそうじゃねーか?当然作ってあるんだろ 強がっても本当はDirectXライブラリなんて作った事ないんだろ。まあ昨日までロックを 知らなかったんだから無理も無い。 そのくせ態度だけはでかいんだよな。ヒトを低脳よばわりとかして… GCが効果を出すのはごく限られた状況だけ、ほとんどは余計なプロセスが動くだけで STGなんかを作る人からは嫌われている。 GCがメモリをいじくりまわしても、無造作にメモリ使いまくるコード組んでりゃいつかは 足りなくなってスワップするし、ようはスワップがちょっと遅れて来るぐらいの効果しか期待できない。 とりあえず自分で「ぐらい」と言った「DXライブラリ」作ってみそ。そしたら少しは認めてやるわ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/156
158: 名前は開発中のものです。 [] 2013/01/31(木) 18:37:22.22 ID:wVU/jdLo 「DXライブラリなら作ってある!!」と言い返せないんだな。 そして「ロックを使わずにピクセルデータをバックサーフェスに転送できる!!」とも言えないんだな くやしいのう。くやしいのう。 >俺はお前の先生じゃないからな。 >初心者に1から10まで教えたりはしない。 じゃあひとつだけでいいよ。 ロックを使わずにピクセルデータをCPUからバックサーフェスに転送できる方法 とやらを教えてくれ。 コードを表示してこっちで試して正しく動作したらオマエの勝ちでいい。 できなければオマエの負け。 オレはロック使わないと絶対にできないと思ってる初心者だから、先生よろしくたのむよ …しかしコイツ本当に一度でもDirectXのコード組んだことあんのかよ? APIも使ったことないんじゃねーの? どっちが初心者だよまったく…バカじゃねーの? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/158
164: 名前は開発中のものです。 [] 2013/01/31(木) 20:31:31.28 ID:wVU/jdLo オマエ…DirectX7を知らないのか…絶句…アホ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/164
167: 名前は開発中のものです。 [] 2013/01/31(木) 20:42:24.50 ID:wVU/jdLo じゃあオフスクリーンサーフェスにピクセル配列を転送するコード を書いてみろ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/167
168: 名前は開発中のものです。 [] 2013/01/31(木) 20:45:12.55 ID:wVU/jdLo >>156でも書いたが、取得できるのはポインタだぞ。その後どうするつもりだ? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/168
170: 名前は開発中のものです。 [] 2013/01/31(木) 21:05:54.09 ID:wVU/jdLo アホすぎる…もういいよオマエは。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/170
175: 名前は開発中のものです。 [] 2013/01/31(木) 22:00:58.85 ID:wVU/jdLo ではこちらはデータ転送部分だけだが、オレの書いたコードをあげよう void __stdcall s2sp15MoveMemory32SSE2( long ptrSrcZeroDTSC, long ptrDstZeroDTSC, long SrcWidth, long LinePlusByte,long StartTop, long WorkHeight ) // 同サイズでの32ビットカラーデータ転送。サイズは送り側 SrcWidth を、8の倍数にすること。 { __asm { mov ebx,LinePlusByte mov esi,ptrSrcZeroDTSC mov edi,ptrDstZeroDTSC mov eax,SrcWidth movd mm0,eax shl eax,2 // 32ビットなので4倍 mov ecx,StartTop mul ecx add esi,eax // ソース開始アドレス movd eax,mm0 shl eax,2 // 32ビットなので4倍 add eax,ebx // LinePlusByte mul ecx add edi,eax // デスティネーション開始アドレス movd eax,mm0 shr eax,2 // 4点ずつ処理する movd mm6,eax mov eax,WorkHeight add eax,ecx movd mm5,eax // エンドライン mov eax,ebx or eax,edi test eax,0xf jnz LL201 // アライメントNG http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/175
176: 名前は開発中のものです。 [] 2013/01/31(木) 22:01:39.38 ID:wVU/jdLo LL101: // アライメントOK movd eax,mm5 cmp eax, ecx je LL99 movd mm7,ecx movd ecx,mm6 LL102: dec ecx js LL120 movdqa xmm0,[esi] movntdq [edi],xmm0 add esi,16 add edi,16 jmp LL102 LL120: add edi,ebx // ダイレクトXでのライン加算 movd ecx,mm7 inc ecx jmp LL101 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/176
177: 名前は開発中のものです。 [] 2013/01/31(木) 22:02:19.43 ID:wVU/jdLo LL201: // アライメントNG movd eax,mm5 cmp eax, ecx je LL99 movd mm7,ecx movd ecx,mm6 LL202: dec ecx js LL220 movdqa xmm0,[esi] movdqu [edi],xmm0 add esi,16 add edi,16 jmp LL202 LL220: add edi,ebx // ダイレクトXでのライン加算 movd ecx,mm7 inc ecx jmp LL201 LL99: emms } return; } http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/177
178: 名前は開発中のものです。 [] 2013/01/31(木) 22:05:22.35 ID:wVU/jdLo movntdqは、ライト時にCPUキャッシュへの書き込みをキャンセルする命令だ。 書き込みを高速化できる。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/178
179: 名前は開発中のものです。 [] 2013/01/31(木) 22:07:42.35 ID:wVU/jdLo まあVBじゃないが、そっちもC#のコードだしな。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/179
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.652s*