2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【美しく】gdi++.dll スレッド【鮮やかに】

1 :名無し~3.EXE:2006/09/23(土) 00:02:13 ID:vQwhWGHx
美しく、力強く、鮮やかに。
新たなスクリーンフォントの世界を体験してみませんか。
従来のフォントレンダラを大きく上回る描画性能を実現したgdi++のスレッドです。

公式サイト
http://drwatson.nobody.jp/gdi++/
作者:◆0x0D/0x20I 氏、460氏ほか

ニュース・紹介
ttp://www.new-akiba.com/archives/2006/09/gdidll.html
ttp://www.forest.impress.co.jp/article/2006/09/22/gdiplusplus.html
ttp://hail2u.net/blog/software/gdi-plusplus.html

2 :名無し~3.EXE:2006/09/23(土) 00:13:11 ID:RTEk1/Dv
                  , -=ミ;彡⌒`丶、
                  /:::::::::::::::::::::::::::::::::::`丶
               /::::::::::::::::::::::::::::::::::::::::::::::::ヽ
               l::::::rィノツノtゝミン、ノノン、:::::::l
               !:::::: '"^'"`~`  ヾ( l::::::ノ
               ',::::j ⌒''ヽ,,,)ii(,,,r'''''' 〈::::::j
       ,-'"ヽ   fヾ}, ィ赱、 i i r赱ミ  l:イ
      /   i、  lと',  `"" ,l l `""  ,リぅ!   _/\/\/\/|_
      { ノ   "'ゝヽ-ヘ  ,ィ''。_。ヽ、  /_ン'   \          /
      /       "' ゝ' il´トェェェイ`li  ,'     < ニャーン!! >
      /          l、.!l |,r-r-| l! /!     /          \
     i            l ヽ. `ニニ´ ノ l       ̄|/\/\/\/ ̄
    /               `' ― '´   }
    i'    /、                 ,i
    い _/  `-、.,,     、_       i
   /' /     _/  \`i   "   /゙   ./
  (,,/     , '  _,,-'" i  ヾi__,,,...--t'"  ,|
       ,/ /     \  ヽ、   i  |
       (、,,/       〉、 、,}    |  .i
                `` `     ! 、、\
                       !、_n_,〉>

    /'''7'''7     /'''7       / ̄ ̄ ̄/    / ̄ ̄ ̄ /
    / /i  |      / /      .. ̄ .フ ./.    / ./二/ /  . . ____
  _ノ / i  i__ . ノ /__,l ̄i   __/  (___   /__,--,  /    /____/
 /__,/  ゝ、__| /___,、__i  /___,.ノゝ_/    /___ノ


3 :名無し~3.EXE:2006/09/23(土) 00:15:32 ID:9kPSTT4Y
               /   ノノ ノノノ ヾヽ、ヽ
           /   ノ) `     ´ i |
           i    {   ` , ,-,、´  i |  
          {    i ● )-―-'(  i |     
             ヽ   i     ⌒   } |_,,,. -‐- 、  
          __)), ,ノ人   、_,  ノ''"´   ,      \ 
            /       ` ー--,. '´   . : :`(      ゝ、
          /           : : :: :´: .         : :\ , ' ´_   ヽ
       /  r´: :       : : : :       ,. ' ´ ヽ>'´    ,'ヽ!
        / γ: :        ノ    _   ,, 、,, ,,__i  。 ./       ; ,!
       i   ir' " ヽ    ,,, ''' ´         `"7         :/ 
     i  |、 ° }, '                 ` y'         /
'''‐‐- ...,,,_|   ヽ、ー/           __    _/          /
        `'' -,,て          ´    ̄ ̄ /          ,イ 
         `''- 、_/            /    `  / ,!    _,
                 `''- ,,     ,..、_,,..イ´      i'´  `ゝ''"´
                \_ ,,,,,...ゞ、_           |ー-/  
                       ミ〉       !r'´
                     ヽ   ミ/、 /|  i  i } 
                         B/.../。ヾ!、,|  !´ 
                        ;iクノく 〈ノγ `'''´
                      ヽ ヽ y i'   /
           _________)\____________
         /                                   \


4 :名無し~3.EXE:2006/09/23(土) 00:17:53 ID:luz22vqq
>>1

5 :名無し~3.EXE:2006/09/23(土) 00:24:30 ID:RTEk1/Dv
          r─ -- 、._   _. -─‐ - 、_
          |f ̄`ヽ、:.:,: ̄:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.` ̄_二ニニヽ.
             |   、ヾソ:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.く  ,    }}
           l. _ニソ:.:.:.:.:.:ー_‐=;;=- 、:_.:.::.:ヽ:.:ヾ彡   /
             l  /:.::.:.:.; イ//´ ||     `ト、:.:.ヽ:.:Y′/
           ∨:.:.:.://,イ/  ||     |l llヽ:.:.:.:l /
           !:.:.:/ //レj    l!    |l ||l, ヽ.:.:V
            |:.:ノ  l/ /'―==、 ,;==-、 l|  l:.:.|
            l::l i j′ _,ェァ-)  rェュ.,_  | i il:.:j
           V i i|   /  | l "―  ,j i ル′
            |州|||     y'" ヽ、   .l州|l|
                川j|l、  / ~^-^~ヽ   l|リlハl
              价川ゞ、   _ __,  ノリリリリ'l  
            lヾ川〜'丶、´'-=-'`ィ´"フノル′
                   j  ̄  l_,.-、
                  ,. <^ <.__  _//^>-、
                /: : : `ー-、_l ̄_// /.: : :ヽ
             /: : : : : : : : : | |: :/ /: : : : : :`、
              ハ.: : : : : : : : : : ̄'/ /.: : : : : : : :l
            {: :Y,: : : : : : : : : :/ / : : : : :、: : :ハ
             j: :、l : : : : : : : : / /: : : : : : : :Y: : :l
              |: : :ソ: : : : : : :レ' /l: : : : : : : : :l : : :|
              |.: : :j: : : : : : / /; : : : : : : : :、:l: : : :|


6 :名無し~3.EXE:2006/09/23(土) 00:26:55 ID:9kPSTT4Y
     / ̄ ̄ ̄ ̄ ̄ ̄ ̄\ 
    | ○。         |
    ノノ)            从
   ( i从〓〓      〓〓.从
   .从-=・=-      -=・=-从
  从从.        l       从)
  (从.l∴      ∨     ∴从人)
 (人人|∴ ヽ  .ー===-' ./.∴..从人)  <
 (人人|∴∴!    ̄   !∴∴l从人)   
 (人人|∴∴!.       !∴∴l从人)   
 (人人|∴∴!.       !∴∴l从人)
..(人人人_人____人_.人人人)
〔ノ二二,___       __,二二ヽ〕
 |:::::::::::::::::::::::::ヽ゜   ゜/:::::::::::::::::::::::::/
 〉::::::::: :::::::::::::〉__∩__〈:::::::::::::: ::::::::〈 
 |:::::::::::::::::::::::/\ ̄/ヽ:::::::::::::::::::::/
〔:::::::::::::::::::::/  ノ ~ヽ  ヽ::::::::::::::::::|
ヽ:::::::::::::::::/ /:::::::::::: \ ):::::::::::::::::::ゝ
ノ:::::::::::::::::::| |_〜─ー= - | |〜〜〜/


7 :名無し~3.EXE:2006/09/23(土) 00:29:22 ID:Zp5T61Z+
                               ,,;- ;,
                             ,,;')))  ;;'
                            ,;'ヾ))  ,;'
                        ,,,,,,,,,,;;''' ミ、、  ,;'
               _____     ,,;;''     '' ;.   ノ    やってらんねー
                 "''ー-,;;''       へ   彡'';;,
                ,,,,,,;;;''''ヽ、\    { ●}     ';,,
            ,,,,,,;;;''''  --- 、_ヽ ヽ    ヽ'     彡 ';,,,,.,,.,.,.,.,,.,,._,
         ,,;''''''''   -------、ニ.: : :             ミ;;    `)
      ,;;'''''',,,,;;''''  ,, --''" ̄ ;'       〉::::.   ,-ー 、   ミ    ,,;''
 ,,,-''''''''''' ,,;;''      ';;,;.;.;.;.;.;.;.;.; ,;   `ー、/ ヘ.'  ヽ● )  ミ  ,,;''
(____,;;;       ; ;:;:;:;:;:;:;:;:;:;'';,, : : : :|: : : : :、 、   ̄   ,,;''
   ,,,,;;''       ,,;'-⌒'''''⌒'''⌒'''''----'-----`ー`ー⌒''''''⌒⌒⌒⌒⌒⌒⌒
,;;'''''        '';,,''
;   i  i  i {}  ,;
'';:.:.:.:.:|:.:.:.:|:.:.:.:|.:.:|:..,;'
 '''''''"'''''''"''''''"'''""

8 :名無し~3.EXE:2006/09/23(土) 00:33:15 ID:JsVMPjDu
ソースを見させてもらいましたが、1つ気になるところがありました。

フォントのサイズを変更している部分なんですが
20060920では高さだけで幅が変更されていないようです。

logCanvasFont.lfHeight *= 3;

この部分を

logCanvasFont.lfWidth *= 3;
logCanvasFont.lfHeight *= 3;

こういうふうにしたほうがよいと思います。
こうしないとlfWidthが0以外のとき、フォントが縦長になってしまいます。

9 :名無し~3.EXE:2006/09/23(土) 00:53:34 ID:FK0jn1Xh
単におっきく描いて小さくしてるだけ?

10 :名無し~3.EXE:2006/09/23(土) 01:26:34 ID:sy6lhg1T
Firefox+ヒラギノ角ゴPro W3だと恐ろしく綺麗になるね。
しかも重くならない



11 :名無し~3.EXE:2006/09/23(土) 01:44:20 ID:JsVMPjDu
TA_UPDATECP が指定されている場合は下記のコードで対応できると思います。

IMPL_ExtTextOutW()
{
...

// 描画先のGetTextAlign()の状態に応じて転送する位置を変える
alignText = GetTextAlign(hdc);

if (alignText & TA_UPDATECP) // 追加コード
{
POINT point = { 0 };
::GetCurrentPositionEx(hdc, &point);

nXStart = point.x;
nYStart = point.y;
}

...

if (alignText & TA_UPDATECP) // 追加コード
::MoveToEx(hdc, actualX + destWidth, actualY, 0);

return TRUE;
}

VC6 に適用して動作確認しました。

12 :460:2006/09/23(土) 01:57:38 ID:iJcZyxLn
>>1

さっそく、gdi++.exeだけ突貫工事で作りました。
ttp://www003.upp.so-net.ne.jp/kish/prog/gdipp_exe.zip
とりあえずの間に合わせになれば良いかな。
これ使うと、JaneStyle等でウィンドウの一部が表示されない問題がなくなるはず。
おまけで、ショートカットをドロップしても起動できるようになった。

>>◆0x0D/0x20I氏
前回はコア部分を大幅に変更しちゃったんで、そちらの負担になるのはマズイと思って、
「改造版」という看板にしただけですので、コード取り込んで頂くのは全然OKです。
本当はここまでやるつもり無くて、テキストボックスとか表示されないの何で?
って気になって、ついつい orz

13 :名無し~3.EXE:2006/09/23(土) 02:00:37 ID:JsVMPjDu
あとここがちょっとおかしいような気がします。

// 描画先のLOGFONTを取得
hSrcFont = (HFONT)SelectObject(hdc, GetStockObject(SYSTEM_FONT));
GetObject(hSrcFont, sizeof(logCanvasFont), &logCanvasFont);
SelectObject(hdc, hSrcFont);

次のようなコードでよいと思います。

hSrcFont = (HFONT)::GetCurrentObject(hdc, OBJ_FONT);
GetObject(hSrcFont, sizeof(logCanvasFont), &logCanvasFont);

もう1つ、hCanvasDCのフォント指定も

//SelectObject(hCanvasDC, hCanvasFont);
HFONT hPrevFont = (HFONT)SelectObject(hCanvasDC, hCanvasFont);

として、

//SelectObject(hCanvasDC, GetStockObject(SYSTEM_FONT));
SelectObject(hCanvasDC, hPrevFont);

のようにちゃんと以前のフォントを復元した方がよいと思います。

14 :名無し~3.EXE:2006/09/23(土) 02:22:27 ID:7gTnJaMC
MMXとかで高速化するのは無理?

15 :名無し~3.EXE:2006/09/23(土) 02:26:51 ID:ZAdWVKCu
なんか凄くなってきた・・・

16 :名無し~3.EXE:2006/09/23(土) 02:29:39 ID:U4oAdFUC
オープンソースで俺でも弄れるレベルのものだったので飛んできました

17 :名無し~3.EXE:2006/09/23(土) 02:33:44 ID:o2m+t9oz
なんて胡散臭くてApple風なテンプレなんだ!!

18 :名無し~3.EXE:2006/09/23(土) 02:58:35 ID:JsVMPjDu
あ、フォントスレッドに20060922ってあったんですね。
指摘したところもすでに修正済みっぽいし。
無駄な書き込み失礼しました><

19 : ◆0x0D/0x20I :2006/09/23(土) 03:21:54 ID:MYxNZFP0
ttp://drwatson.nobody.jp/gdi++/gdi++20060923.zip
とりあえず>>460氏のコードをまとめて、あげておきました。
・・・何もコードを書かないのもアレなので、サブピクセルなんとかのコードを
戻してみましたが、以前と同じく再描画時などに色化けが発生する仕様です。
>>8,11,13,18
あわわわわわ、ありがとうございます。
ええと、大変申し上げにくいのですが、実は、前スレ>>610のあたりでソースをほぼまるごと
書き直して頂いて、サイトに公開してあったバージョンとコードがかなり変わってしまいまして・・・
TA_UPDATECPフラグの処理も、その際に追加して頂きました。最新版のソースを上げて置きましたので、
もしよかったらご覧ください。どーもすみません。ほんとに申し訳ないですm(__)m
>>12
すげー。毎度毎度すみません。なんだかずいぶんハードコアになってってる・・・
ということで、さっそく利用させていただきました。本当にdクス!
>>14
MMXを使えば使えるレジスタの数が増えて、しかも64ビット幅なのでなんだか速くなるかもしれない。
とりあえず、もっと新しいコンパイラでビルドすれば、もうちょっと速くなるでしょう。

20 : ◆0x0D/0x20I :2006/09/23(土) 03:30:20 ID:MYxNZFP0
で、窓の杜に紹介されたわけだけど、そこからのアクセスよりも某エロサイトからのアクセスのが多い件について。しかも3倍くらい。

21 :名無し~3.EXE:2006/09/23(土) 03:36:38 ID:VJQjLF6D
乙です

22 :名無し~3.EXE:2006/09/23(土) 03:47:34 ID:j2en9ghg
Makefile弄ってみた
・コンパイラの最適化オプション追加
・ファイルサイズ縮小(CPUのキャッシュに載りやすくなる?)

LINK_OPT = /opt:nowin98 /merge:.rdata=.text /ignore:4078

$(TARGET_EXE): run.obj
link /nologo $(LINK_OPT) /out:$@ run.obj

$(TARGET_DLL): hook.obj override.obj
link /dll /nologo $(LINK_OPT) /out:$@ hook.obj override.obj

.cpp.obj:
cl /nologo /MD /G6 /GF /GA /Ox /W3 /Fo$@ /c $<

23 :名無し~3.EXE:2006/09/23(土) 03:48:05 ID:sy6lhg1T
>>20
動ナビwww

24 :名無し~3.EXE:2006/09/23(土) 03:50:03 ID:f09LBhzR
>>19
乙乙
gdi++.exeに送るアプリの引数ってどう指定したら良いの?
今までは
D:\Customize\gdi++\gdi++.exe D:\Net\Opera\Opera.exe アドレス
みたいな感じで指定してたんだけど、gdi++がアドレスまで処理しようとしちゃう。

25 :名無し~3.EXE:2006/09/23(土) 04:15:50 ID:CnYUCI4Q
ベンチマークできるような仕掛けかソフトきぼん

26 :名無し~3.EXE:2006/09/23(土) 04:18:26 ID:2eYbf0LK
>>24
普通にアドレス指定無しで、ターゲットEXEを指定するだけでいけるっぽいよ。

27 :名無し~3.EXE:2006/09/23(土) 04:21:43 ID:YeaUBu7u
vc入れていないので、コンパイルためしていないのであれですが、

g_Scale == 2
のところの、

#if 0
dst[0]=(src0[0] + src0[4] + src1[0] + src1[4]) >> 2;
dst[1]=(src0[1] + src0[5] + src1[1] + src1[5]) >> 2;
dst[2]=(src0[2] + src0[6] + src1[2] + src1[6]) >> 2;
#else
const long * lsrc0= (const long *)src0;
const long * lsrc1= (const long *)src1;
long * ldst= (long *)ldst;

*ldst= (*lsrc0 & *lsrc1) + (((*lsrc0 ^ *lsrc1) & 0xfefefefe) >> 1
#endif

にしたら速くならないッスカね?
試してもらえるとありがたい。
OKならexe化してほしい。

www.emit.jp/prog/prog_b.html
を参考にした。

28 :27:2006/09/23(土) 04:24:28 ID:YeaUBu7u
ゴメン

const unsigned long * lsrc0= (const unsigned long *)src0;
const unsigned long * lsrc1= (const unsigned long *)src1;
unsigned long * ldst= (unsigned long *)ldst;

unsigned が必要

29 :名無し~3.EXE:2006/09/23(土) 04:26:30 ID:2eYbf0LK
>>19
乙です。手元のVC++ 7.1でビルドしてみたら、若干速くなった気がします。
VC 6から乗り換えたときの経験では、最大で30%ほど速くなったのですが、
今回はどうかな・・・ちょっとベンチとってきますね。

30 :名無し~3.EXE:2006/09/23(土) 04:42:43 ID:U4oAdFUC
ぼえーっと0923を弄ってたけどexeのほうは
lstr系使ってmemset/memcpy/strchr実装してerrmsgの可変を妥協すれば
#pragma comment(linker, "/entry:\"wWinMain\"")
が通るようになるね 9KBになる

こーいうチューニングはあんま意味無いけどな('A`)

31 :名無し~3.EXE:2006/09/23(土) 04:49:25 ID:d4EZ0yhy
多数のプロセスにマップされるんだからフットプリントの軽減に多少は貢献すると思われ
でもベースアドレスの変更が起こらないようにrebaseしたほうが効果が高そう

32 :名無し~3.EXE:2006/09/23(土) 05:20:46 ID:gyk5Zi6T
>>12,19
KPF4有効でも問題なく使えるようになった。乙です。


33 :名無し~3.EXE:2006/09/23(土) 06:25:21 ID:bTvhOp+j
gdi++.dllは、
生まれたばかりのWindowsフォントレンダラです。

応援して下さいね☆

お友達にも
教えてあげて下さいね。

34 :名無し~3.EXE:2006/09/23(土) 06:26:22 ID:GwvpuUJu
いちいちexeをドラッグ&ドロップせずにgdi++.dllを通した状態で起動することってできないんですか?

35 :名無し~3.EXE:2006/09/23(土) 06:42:40 ID:2eYbf0LK
>>34
常駐させればできる。
例外リストとか作っておけば便利かもね。

36 :名無し~3.EXE:2006/09/23(土) 06:55:19 ID:2eYbf0LK
ベンチとれたので、報告します。
同一のテキストを描画するのに要した時間です。
gdi++は0923です。
生: 25ms
VC6ビルド: 151msec
VC7.1ビルド: 172msec
えっと・・・すみませんでした・・・orz

37 :名無し~3.EXE:2006/09/23(土) 08:02:46 ID:uSXy46rn
>>24
「gdi++.exeに送るアプリ」への引数の渡し方って事?
引数がいつも決まってるなら、バッチを書いてそれを実行するとか。

@echo off
start D:\Customize\gdi++\gdi++.exe D:\Net\Opera\Opera.exe 引数

こんな感じで。

38 :名無し~3.EXE:2006/09/23(土) 08:56:13 ID:/byuI2QI
>>37
それだと引数がoperaに渡らず、gdi++が処理しちゃう、ってことじゃない?

39 :名無し~3.EXE:2006/09/23(土) 09:12:13 ID:PgY6s7Kx
2006/09/23版使ってみたけどWindows標準コントロールのTextBoxとかで
テキストを選択すると色が変になるときがあるのはやっぱり仕様?

あと、「gdi++で起動したアプリから起動したアプリ」ではgdi++では使えないの?


40 :名無し~3.EXE:2006/09/23(土) 09:28:38 ID:PgY6s7Kx
>>39
>2006/09/23版使ってみたけど

ごめ、前の版だったorz

41 :名無し~3.EXE:2006/09/23(土) 09:34:08 ID:Pdpg0+4k
ここまでまとめてビルドしてくれ

42 :名無し~3.EXE:2006/09/23(土) 09:36:36 ID:WkJylE0B
>>36
6倍…。

43 :名無し~3.EXE:2006/09/23(土) 09:39:46 ID:cWG73yis
縮小のアルゴリズムは何使ってるの?

44 :37:2006/09/23(土) 09:52:14 ID:uSXy46rn
>>38
あ、本当だ "" で囲まないとだめだね
@echo off
start "D:\Customize\gdi++\gdi++.exe" "C:\WINNT\system32\notepad.exe" "C:\boot.ini"

45 :37:2006/09/23(土) 10:09:06 ID:uSXy46rn
>>44に書いたのだとnotepadでboot.iniは開くけど
notepadにgdi++が効いてなかった(gdi++を通してnotepadが起動してるのかは分からない)

確認してなかった。ごめん

46 :名無し~3.EXE:2006/09/23(土) 10:13:48 ID:nsVdhdUj
GDI++ 200609022, 20060923 ともに IE7 RC1 のインターネットオプションを
開くとウィンドウの端が切れてしまうTABコントロールの動作がまだヘンです><

47 :名無し~3.EXE:2006/09/23(土) 10:31:42 ID:f09LBhzR
>>37,38
すみません。具体的に書くと、
Operaが起動してない状態でViewから検索ワードをSearchWebに送って
検索する時も、Operaをgdi++に送って起動したかったんです。
現状だとできないっぽいですね。ありがとうございました。

48 :名無し~3.EXE:2006/09/23(土) 11:02:53 ID:PgY6s7Kx
[Exclude]にMarlett追加推奨かも。
チェックボックスとラジオボタンがおかしくなる。



49 :名無し~3.EXE:2006/09/23(土) 11:04:42 ID:fzFhF9yU
汚ねぇじゃん

50 :名無し~3.EXE:2006/09/23(土) 11:23:46 ID:UcK9IPcw
これ使ったらcleartypeは切ってしまってもいいのかな?

51 :名無し~3.EXE:2006/09/23(土) 11:43:10 ID:PgY6s7Kx
>>48
http://bebe.run.buttobi.net/up/src/be_4065.png.html



52 :名無し~3.EXE:2006/09/23(土) 12:19:32 ID:60lMpf3q
SSE3で最適化してみたけどあんまり早くなった感じがしない。
http://homepage3.nifty.com/blacksword/gdi++sse3_0601.zip
Intel C++ Compilerでしかコンパイルできないと思う。
ソースレベルではSSE2も使える。

53 :名無し~3.EXE:2006/09/23(土) 12:35:01 ID:/bjTIEDA
exe側、環境変数依存のコマンドラインだと起動しない 
>gdi++ notepad

FindExecutableで取得した文字列じゃなくて、コマンドラインそのままな文字列で処理してる

54 :名無し~3.EXE:2006/09/23(土) 13:25:42 ID:e0BZohw2
>>35
常駐って、どうやるんですか?

55 :名無し~3.EXE:2006/09/23(土) 13:30:38 ID:v0VTIW7F
>>54
現時点では未対応、よって不可能。
ただしソースが公開されてるから改造すればイケる。

56 :名無し~3.EXE:2006/09/23(土) 13:34:09 ID:YApm+Z8b
誰かuxtheme.dllにリネームしてsystem32に

57 :名無し~3.EXE:2006/09/23(土) 13:38:37 ID:suFjf9ux
>>56
自分でやれよ

58 :名無し~3.EXE:2006/09/23(土) 13:47:28 ID:LX4fdyow
Sleipnirで使っててHeadlineReaderの更新した瞬間青画面でOSごと落ちた('A`)

59 :名無し~3.EXE:2006/09/23(土) 13:51:07 ID:q0Tncnms
explorer.exeも問題なく適用可能なんだな

常駐は結構落ちるor表示崩れるアプリがあるから現段階では実用的じゃないかもね


60 :名無し~3.EXE:2006/09/23(土) 13:53:30 ID:N/ArQAiM
サブピクセル使用して色が付くのはガンマ値が非直線だから仕方ないよな。
今画像処理ツール作ってて昨日その問題にぶち当たったがとりあえず放置。。。

61 :名無し~3.EXE:2006/09/23(土) 14:13:08 ID:qXEU713X
要望なのですが、テキストのフォント指定出来ないようなアプリの救済として、
指定した特定のフォントに変換してテキストを表示するような機能は可能でしょうか。

62 :名無し~3.EXE:2006/09/23(土) 14:15:39 ID:7k7Txa/q
そういうツールじゃねーよ

63 :名無し~3.EXE:2006/09/23(土) 14:37:54 ID:6MHNefIu
>>52
十分早くね?

64 :名無し~3.EXE:2006/09/23(土) 14:38:15 ID:gzaxoFZq
DefaultFontChangerとか似非GDIとか。
ちょうどいいスレを紹介…と思ったら、そこから来たのかorz

65 :名無し~3.EXE:2006/09/23(土) 14:43:22 ID:60lMpf3q
あと>>52のやつではQuality=3しか改造していない。
Quality=1はやろうと思ったらできるけどQuality=2はかなりめんどくさい。

66 :名無し~3.EXE:2006/09/23(土) 14:59:58 ID:E6qbbDmJ
>>52
縮小に時間かかってるんすね。。

67 :名無し~3.EXE:2006/09/23(土) 15:04:01 ID:YjHYKrYq
w2k環境だけどどのソフトも適用されない
何故だ?

68 :名無し~3.EXE:2006/09/23(土) 15:10:51 ID:mX0AN++u
えっ、これで綺麗なの?

69 :名無し~3.EXE:2006/09/23(土) 15:12:31 ID:9YbJcxkH
大きめのフォントサイズでは効かないなぁ。
でも窓の杜のスクリーンショットでは効いてるから、
俺のとこの問題だろうなぁ。でもそれが何かわからない…orz

70 :名無し~3.EXE:2006/09/23(土) 15:29:10 ID:iJcZyxLn
>>69
今のバージョンでは、フォントサイズ 18pt (24pixel) 越えると何もしないで
そのまま表示する仕様になってます。
impressのは古いバージョンの画像だね。

71 :名無し~3.EXE:2006/09/23(土) 15:30:55 ID:60lMpf3q
さらに最適化。SSE2用バイナリも同梱。
http://homepage3.nifty.com/blacksword/gdi++sse3_0601.zip

72 :名無し~3.EXE:2006/09/23(土) 15:33:28 ID:j2en9ghg
縮小よりもIMPL_ExtTextOutW内で毎回GDIオブジェクトを生成してる
コストが大きいと思われ。

予め_hook_init辺りでCreateDIB(2048, 2048)とかして使い回すとか
すればそれなりに早くなりそう。

73 :名無し~3.EXE:2006/09/23(土) 15:35:21 ID:YCNSuCjh
>>68
眼科行った方がいいんじゃない?

74 :名無し~3.EXE:2006/09/23(土) 15:43:31 ID:60lMpf3q
BitBltの代わりにStretchBltを使えないものかな?

75 :名無し~3.EXE:2006/09/23(土) 15:56:29 ID:WkJylE0B
>>50
かかるのはD&Dした特定アプリだけだから、切らないほうがいい。
ClearType用フォントがClearType以上に綺麗になる事は無さそう。

76 :名無し~3.EXE:2006/09/23(土) 16:03:16 ID:dXdyeoT3
検証したら標準アンチ、レンダリングなし、ClearTypeでは少し変わる
ほんとに微妙で画像を相互に切り替えたらわかるくらい

77 :69:2006/09/23(土) 16:19:04 ID:9YbJcxkH
>>70
なるほど。仕様だったのですか。

78 :名無し~3.EXE:2006/09/23(土) 16:22:27 ID:7M0pk5F0
>>67
FireFoxはイケたが、
Becky!はNG


79 :名無し~3.EXE:2006/09/23(土) 16:34:11 ID:Pdpg0+4k
>>71
http://homepage3.nifty.com/blacksword/gdi++sse3_0602.zip
じゃね?

80 :名無し~3.EXE:2006/09/23(土) 16:40:06 ID:60lMpf3q
>>79
そのとおりでした。
なお、BitBltをStretchBltにしてみたけど画質が悪いので使えませんでした。

81 :460:2006/09/23(土) 16:46:14 ID:iJcZyxLn
また gdi++.exe だけ修正。
ttp://www003.upp.so-net.ne.jp/kish/prog/gdipp_exe_2.zip
>>24 のようにアプリに引数渡せるようにしました。
>>53 も修正。workdirの処理がバグってました。

>>71,79-80
すげー。
で、早速試してみようとしたら、ウチのAthlon 64では動かないみたい。
SSE2は使えると思うのだが(´・ω・`)
何が悪いんだろ?Intelコンパイラの陰謀なのかな?


82 :名無し~3.EXE:2006/09/23(土) 16:52:12 ID:s+pw1Rx0
IntelコンパイラがCPUチェックして
AMD CPUのときはSSEを通さないのなんだのってのは
ベンチマークとかで実証でたんだっけ?

83 :名無し~3.EXE:2006/09/23(土) 16:52:52 ID:60lMpf3q
>>81
ファイル差し替えた。
コンパイラの最適化オプションを変えてなかったのが原因だと推測。

84 :460:2006/09/23(土) 17:00:38 ID:iJcZyxLn
>>83
thx! 動きましたー(゚∀゚)

そして ごめんなさい。
前のsse2のが動かなかったのは、なんかこちらの手違いだったかも。。。


85 :名無し~3.EXE:2006/09/23(土) 17:08:18 ID:AoPnC1hs
>>82
CPUチェックしてSSE対応のCPUでない場合は使ってないコードを通すんだっけ。
IntelCPUのサポートは速いが、AMDCPUのサポートは遅い。これを意図的と見るかどうかってところだね。

86 :名無し~3.EXE:2006/09/23(土) 17:08:57 ID:b3+MVoLW
(´・ω・`)うちPentium3やがな

87 :名無し~3.EXE:2006/09/23(土) 17:09:44 ID:UcK9IPcw
janeにこれ使うとスクロールがものすごくもっさりになる
Webブラウザーなんかはいいんだけどね…

88 :名無し~3.EXE:2006/09/23(土) 17:12:43 ID:pk3Tcn1c
Linuxみたいで微妙

89 :名無し~3.EXE:2006/09/23(土) 17:14:35 ID:d4EZ0yhy
>>72
マルチスレッドとかで破綻しない?

90 :名無し~3.EXE:2006/09/23(土) 17:14:46 ID:YyMBCXVs
描画が手間かかるようになるからなあ

91 :名無し~3.EXE:2006/09/23(土) 17:31:43 ID:u6o9J9yo
Webブラウザでスクロールすると変になるんだけど

92 :名無し~3.EXE:2006/09/23(土) 17:42:17 ID:8fmZVmxF
面白い事考える人がいたもんだ。作者&管理者&ご意見番乙。
WindowsMoblieでClearType使ってるみたいになって幸せ。

>>39
起動したアプリから起動した…ってのは仕様っしょ
kage&Katjushaとかは_だったし


93 :名無し~3.EXE:2006/09/23(土) 17:49:23 ID:sWqGhMdo
やべー。これ使ったら逆に汚ねー。

94 :名無し~3.EXE:2006/09/23(土) 17:50:02 ID:WkJylE0B
>>91
その部分をマウスで選択するか全選択すると直る。

95 :名無し~3.EXE:2006/09/23(土) 17:50:11 ID:sTmiuWKM
>>80
拡大するときにStretchBltをつかうとデフォルト状態では汚い。
SetStretchBltModeでHALFTONEを指定するとそれなりにきれいになるけどためした?
ちょっと重くなるけど・・・

(参考)
http://www13.plala.or.jp/kymats/study/MULTIMEDIA/StretchBltMode.html

96 : ◆0x0D/0x20I :2006/09/23(土) 18:05:59 ID:MYxNZFP0
/.にタレコミが。なんかいつものあそこの雰囲気と違う気がしないでもないけど。
それにしてもココは人が増えてうれしい限り。で、
http://drwatson.nobody.jp/gdi++/gdibench.zip
VBでパパッとExtTextOut()の評価用ツールを作りました。もし必要な方はどうぞ。
>>27
メモリアクセスの回数が減る分だけ、速そうな予感。32ビット幅だしね。
>>36
あれれれ、そんなハズは・・・
>>43
整数倍の縮小の場合は、アルゴリズムはどれも大差ないハズです。
>>61
CreateFont()系を監視すればできるけど、ね。でも同種のソフトがあるみたいだから。
>>74
SetStretchBltMode()でキレイに縮小できるらしいけど、漏れの環境では
なんかイマイチだったような希ガス。妙にシャープネスがきつくなる。
>>79
うお、なんか凄い速い気がする。後でベンチマークとってみないとね。
>>81
乙カレ。毎度毎度お疲れ様です。Intelコンパイラの件でAMDは訴訟を起こしてたような。

97 :名無し~3.EXE:2006/09/23(土) 18:35:39 ID:u6o9J9yo
>>94
スクロールするたびにマウス選択するのか、まだまだ使えないな

98 :名無し~3.EXE:2006/09/23(土) 18:51:08 ID:tfkUwhS2
RC1で環境構築しちゃったあとだから新たにインストするのかったるいな
明日ゆっくりやるか

99 :名無し~3.EXE:2006/09/23(土) 18:51:47 ID:tfkUwhS2
誤爆した。申し訳ない

100 :名無し~3.EXE:2006/09/23(土) 19:15:00 ID:ofd7PliE
AthlonMPのデュアル構成+XpSP2@20060923なんだけど、
IE系の描画エンジン(IEとSleipnir2.47)だと一部の行の下半分が描画されてなかったりするんで報告〜
ちなみにF5とか範囲選択すると治るけど、スクロールするとやっぱりどっかの行が崩れる。
Firefoxだとこの不具合は出ません。

268 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)