Win32API 質問箱 Build5

このエントリーをはてなブックマークに追加
初めて書き込ませてもらうんですが
APIでアルファブレンディングを実装するにはどうしたらいいのでしょうか?
ピクセル単位でブレンドしたい画像それぞれのRGBを取得して
計算を行えばいいのでしょうか?
計算の方程式は簡単に思いつくのですが、それでは恐ろしく遅いと思うので
一応ゲームに使う予定なので、もっと早い方法はないのか……と
思っているところです。
>>951
スプリッタのこと?
完全に自分で実装するしかないよ。
WM_LBUTTONDOWNが来たときにSetCaptureして〜てな感じで。

>>952
AlphaBlend(
HDC hdcDest,
int nXOriginDest, int nYOriginDest,
int nWidthDest, int hHeightDest,
HDC hdcSrc,
int nXOriginSrc, int nYOriginSrc,
int nWidthSrc, int nHeightSrc,
BLENDFUNCTION blendFunction
);
質問です。
構造体のリファレンスが載ってる本もしくはHPってしりませんか?
>>954
お前は
今朝までに作った構造体の数をおぼえているのか?
>>954
英語版のMSDNへ逝けよ。
957:02/09/21 00:17
>955
お前は今まで食べたパ(以下略
(以下略 =>ンツの数を覚えているのか?
ある大きさ(単位pt)のフォントの高さの上限というものは決まっているのでしょうか?
例えばどんなフォントでも12ptならば高さ0〜X以内におさまる、と言えるのでしょうか?
言えるのならばXの値を取得する方法を教えてください。
>>959
フォントサイズが12ptなら高さ上限は12ptだと思うが?
何の単位で取得したいんだか。

>>950 次スレは?
962デフォルトの名無しさん:02/09/21 03:21
>>953
スプリッタと言うんですか。
http://www.kumei.ne.jp/c_lang/sdk2/sdk_117.htm
こういうやつです。

しかしこのやりかたでは、3つ以上に分割できない。

どうやって実装するのかイメージが掴めません。
もうすこしヒントを頂けないでしょうか?
指定された文字が全角か半角かを判別するAPIありませんか?
>>962
楽をしたいのならスプリッタ専門のウインドウを作るといいよ
勿論、その分リソース消費することになるけど。
それがイヤなら実装でがんばるしかない。
そもそもプロポーショナルフォントに全角も半角もないが。
>>963
文字ってなんだよボケナス。
SJISの上位バイト判定ならIsDBCSLeadByteでも使っとけ。
>>965
ネタで言ってんのかマジで言ってんのかわからん。
968964:02/09/21 03:31
>>962
役に立たないかも知れないけど、
うぷろだ用意してきたら昔つくったソース上げるよ
969966:02/09/21 03:34
>>964
いい人がいるもんだな。
超低レベルな煽りしか書けないアホ共に
爪の垢を煎じて飲ませてやってくれ。
>>965
勿論固定ピッチのフォントです

>>966
文字コードとかに依存しない方法が知りたいんです。
たとえば、昔PC98であった2バイト半角文字とか、UNICODEのキャラクタとかのように、
文字列のバイト数で簡単に判別出来ない事があるので

指定のグリフの属性がhalf-widthかfull-widthか知りたいのです。
勿論、そんなAPIが無いので困っているのですが…

http://www.microsoft.com/japan/developer/windows/techart/FixedPitchFont.asp
ここで明らかにされたようにXP以外の環境だと、
固定ピッチでも全角が常に半角の2倍の幅になるとは限らないので
GetCharWidth32()で得た値を信じて文字を描画していくことが出来ないのです。
今まではSJISだったので単純に(文字列のバイト数*半角文字の幅)で幅が計算
出来たのですが、UNICODE化するとそうも行かず困ってます。
>>936
例の和解で公開されたものから1つ例を挙げるとShowJavaConsoleか。
これのおかげで速くなってるとはまったくもって思えないけど
972959:02/09/21 03:59
取得したいのは論理単位でです。
おなじ12ptでもフォントによってTEXTMETRICのtm.tmHeightは異なるので
上限があるのかなと思ったのですが…
>>970
ふつーGetTextExtentPoint32()で一々数えると思うが。
新スレ立てます。
>>970
Unicodeか・・・ちなみにギリシア文字(アルファとかベータとか)は全角だと思いますか?半角だと思いますか?
>>976
んなVB厨みたいなこと言うなよ。
全角に決まってるじゃん
固定ピッチフォントで確かめれば一発でわかるじゃん。
ちったー自分で試してみろよ
>>977
ぎゃはは! マヌケなDel厨発見。

コードページって知ってるか?
それ以前にUnicodeって知ってるか?

けっこう笑えたんで晒しとくね。
>977
固定ピッチのCourier Newで試してみたところ、半角ですた。
>>977
実は自分がVB厨?

( ´,_ゝ`) プッ
仲良くな。
982デフォルトの名無しさん:02/09/21 17:01
> 全角に決まってるじゃん
> ちったー自分で試してみろよ

( ´,_ゝ`) プッ
>>977
自分が限られた環境の中で生きていることを忘れているらしい…
977のスキルを考慮して反論を予想してみると、
 V B 厨 必 死 だ な (藁
くらいが関の山だろな。

自業自得なんで同情はできんが。
>>984
「俺がやったときはそうだった」とかな。
986デフォルトの名無しさん:02/09/21 17:36
CreateThreadについて質問です。
MSDNのヘルプに
> C ランタイムライブラリの関数を使うスレッドは、CreateThread 関数と ExitThread 関数ではなく、
> _beginthread 関数と _endthread 関数を使うようにしてください。
と書いてあったのですが、これは何故ですか?
言われたとおり_beginthread/_endthreadを使いましたが、気になったんで…
FAQだ氏ね
ランタイムの初期化処理や終了処理が必要になるから。
ただし、すべてのランタイム関数で必要なわけではない。
>>986
ライブラリの内部変数排他処理絡みじゃないの?
_beginthreadで、排他処理用mutexの初期化とかやったりとか
考えられる。(合ってるかどうかわからないけど)
なんでライブラリのソースみないの?
例えば asctime のような関数をスレッドセーフに作るなら、スレッドごとに領域を確保しなきゃならんし、解放しなきゃならんでそ。実装の詳細は知らんけどたぶん。
992986:02/09/21 18:00
>>988-991
レスありがとうございます。
>>991さんのレスで納得しました。
つーか次スレできてるぞ

Win32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/l50
きょうび 1000getなんて流行りませんな
きょうび 1000getなんて流行りませんな
>>995
やればいいじゃん
きょうび 1000getなんて流行りませんな
やれば?
逝け池
1000ゲト
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。