約 4,340,204 件
https://w.atwiki.jp/pakemon/pages/646.html
【077】対戦車戦:T-72U Custom ◆バナネル・フルタ・デ・オロ / 農場 敵部隊を無力化するか、敵戦車を破壊しよう。 バトルドレス、ミサイル系、マシンガン系の装備で挑むと良いでしょう。 対戦車地雷を持っている場合は、予め先に移動ルートに設置しておくと楽です。 【ミッションリザルト】
https://w.atwiki.jp/subeta/pages/104.html
Aeanoid Antlephore Anyu Archan Bovyne Bumbus Cadogre Celinox Chai Charlie Chelon Clawsion Cybill Darkonite Demi Devonti Dillema Donadak Dragarth Endeavor Escalade Feli Fester Ghostly Harvester Hikei Hipottu Illumis Irion Jollin Kanis Keeto Kerubi Kora Kumos Lain Lasirus Legeica Magnus Mahar Mallarchy Malticorn Manchu Montre Mortking Ontra Paralix Pherret Popoko Priggle Rreign Ruffie Serpenth Sheeta Swampie Telenine Terracoon Tigrean Torrent Torrey Tutani Velosotor Warador Wyllop
https://w.atwiki.jp/customexe/pages/2.html
メニュー トップページ 花映塚大会 プラグイン紹介 まとめサイト作成支援ツール メニュー メニュー2 リンク @wiki @wikiご利用ガイド 他のサービス 無料ホームページ作成 無料ブログ作成 2ch型掲示板レンタル 無料掲示板レンタル お絵かきレンタル 無料ソーシャルプロフ ここを編集
https://w.atwiki.jp/saicron/pages/86.html
Geeklog +About… About About Geeklog Geeklog is an open source application for managing dynamic web content. It is written in PHP and supports MySQL, PostgreSQL, or MS SQL as the database backend. "Out of the box", Geeklog is a CMS, or a blog engine with support for comments, trackbacks, multiple syndication formats, spam protection, and all the other vital features of such a system. The core Geeklog distribution can easily be extended by the many community developed plugins and other add-ons to radically alter its functionality. Available plugins include forums, image galleries, and many more. About Geeklog - Geeklog Geeklogはブログを中核とした高機能汎用CMSであり,直感的軽快操作で運用しやすいのが特徴です。(参考:GeeklogのSEO対策) モバイルでの運用やアクセシビリティテーマの提供で,SEOに強く,しかもユーザにやさしい高機能サイトを設置できます。 拡張手法が充実しているので,WEBアプリケーションフレームワークとしても。 運用が簡単なので,導入企業にとっては手離れの良いCMSです。 Wikiや掲示板,SNSで豊富な情報があり,サポートが充実しています。 日本でのGeeklog.jp SNS参加者は1000人を超えて,Geeklog開発を推進しています。 Geeklogの特長 - Geeklog Japanese Contents GeeklogContents Geeklog カスタマイズ ショッピングカート レンタルサーバー Geeklog GeeklogDocumentation Wiki Docs Forum Geeklog日本公式サイト製作・導入事例 掲示板目次 Geeklog 1.7.0-jp.1.1 配布内容 カスタマイズの方法と事例紹介 開発者用ドキュメント GeeklogJpWikiはじめてのGeeklog1.5カスタマイズ page top カスタマイズ ProfessionalCSSでは,スタイルはcustom.cssに,画像は images/custom/に,カスタマイズ処理を集約しています。 つまり,テーマは,custom.cssさえ書き換えればほとんど修正できるわけです。 日本語拡張パッケージに同梱されている「カスタムメニュープラグイン(custommenu)」と「テーマエディタプラグイン(themedit)」をインストールして,テーマを編集してください。 はじめてのGeeklog - GeeklogJpWiki 専用のCSSファイル(custom.css)を利用したカスタマイズ この方法は、カスタマイズ部分を専用のCSSファイル(custom.css)に分離するため、ProfessionalCSSテーマに変更があった場合でも柔軟に対応できるとともに、カスタマイズしたテーマの保守・管理性も高まります。 CSSの特徴であるカスケードを活かしたカスタマイズ方法です。 custom.sample.cssの内容を最初に記述した上で,あらたにスタイルを追加してご利用ください。 [編集] 1.00以降 1. 各CSSファイルからカスタマイズする箇所をcustom.css内にコピー ペーストします。 2. セレクタのみを残し、宣言(プロパティと値)を削除したあと、上書きしたいスタイルを記述していきます。 サンプルとして、custom.sample.cssを同梱しています。既存のcustom.cssを削除して、ファイル名をcustom.sample.cssからcustom.cssへ変更すれば、そのままカスタマイズのベースとして利用できます。 なお、custom.cssから呼ばれる画像はimages/css/ではなく、images/custom/に置くことをおすすめします。 ThemeProfessionalCSS - Geeklog Japanese テーマエディタプラグイン custom.css について ThemeProfessionalCSS Geeklog - 仕事にヒントGeeklog(ギークログ)カスタマイズ事例-1_1 - 仕事にヒント procss逆引きcss - GLTMatrix テーマクッキング - GLTMatrix 記事の表示を整える - GeeklogJpWiki 文字カウントを非表示にするには - Geeklog Memo Geeklogの携帯サイトとPCの表示を分ける 記事の日付を非表示にするための変更 カスタマイズ - Geeklog Memo page top ショッピングカート A cart for your site with paypal plugin 1.1 page top レンタルサーバー レンタルサーバー(WordPress・Geeklogが簡単!) page top
https://w.atwiki.jp/hisashi666/pages/324.html
特徴 シグネチャ-モデルの元になったギター 概観の変化 Specs Serial Number Body Top Back Laminated Maple Laminated Mahogany Mahogany Maple Swamp Ash Ash Alder Cast Aluminum alloy AC4B (アルミニウム合金鋳物) Neck One-piece Maple Maple Birdseye Maple Mahogany Fingerboard Rosewood Pau Ferro Ebony Brazilian Rosewood Same wood with Neck Frets/Scale Length 22F 21F 24F 25.5” (648 mm) 25” (635 mm) 24.75” (628 mm) Pickups LindyFralin Seymour Duncan DiMarzio Bill Lawrence Van Zandt Voo Doo Fernandes SUSTAINER Front: Center: Rear: Hardware Machine Heads Gotoh SG381 Mugnum-Lock Gotoh SD91 Mugnum Lock SPERZEL Lock-type Original Nut GraphTech Trem-Nut GraphTech TUSQ Original String Guide GraphTech Original Bridge Gotoh 510AT-2 Wilkinson VS100N Wilkinson VS100B Wilkinson VS100P Original Saddles GraphTech String Saver Saddles Original Tailpiece Bigsby Original レコーディング使用 登場時期 ~ ライブDVD/ビデオ登場曲 掲載誌 バンドやろうぜ 年月号 GiGS 年月号 ロッキンf 年月号 その他
https://w.atwiki.jp/mgs4_wiki/pages/33.html
日曜日、水曜日はDPが20%OFFに、 ACT5では”戦場価格が暴落”したために50%offになる。 難易度EXでは非殺傷(青色)のアイテム販売なし ロック解除価格は本体価格の10分の1。 武器爆破物 その他 弾薬 カスタムパーツ アイテム ドレビンへの売却価格について 武器 分別 名称 入荷時期 購入価格 ハンドガン GSR 初期 3,000DP PMM 初期 3,500DP FIVE SEVEN ACT2 6,000DP PSS 初期 5,000DP G18C ACT3 8,000DP D.E. ACT2 20,000DP サブマシンガン P90 ACT2 5,000DP M10 初期 3,000DP MP7 初期 3,500DP BIZON ACT2 7,000DP MP5SD2 ACT3 15,000DP ライフル MK.17 初期 3,500DP DSR-1 初期 20,000DP M14 EBR 初期 9,000DP MOSIN-NAGANT 初期 60,000DP SVD ACT2 18,000DP G3A3 ACT2 4,000DP AN94 ACT3 5,000DP FAL CARBINE ACT4 4,500DP M82A2 ACT2 200,000DP TANEGASHIMA 初期 1,000,000DP その他 M870 CUSTOM 初期 30,000DP TWIN BARREL ACT3 25,000DP SAIGA 12 ACT2 40,000DP HK21E ACT2 6,000DP M60E4 ACT2 10,000DP PKM ACT3 9,000DP Mk46 MOD1 ACT4 9,000DP XM25 ACT2 80,000DP RPG-7 初期 60,000DP M72A3 ACT2 40,000DP JAVELIN ACT2 150,000DP FIM-92A ACT3 100,000DP 爆破物 名称 入荷時期 購入 ロック解除 GRENADE ACT1 120 15 PETRO BOMB ACT1 100 - WP G ACT1 110 15 STUN G ACT1 120 SMOKE G ACT1 100 SMOKE (Y) (R) (B) (G) クリア後 150 - CHAFF G 非売品 CLAYMORE ACT1 300 S.G.MINE ACT1 300 C4 ACT1 400 S.G.SATCHEL ACT1 400 その他 名称 入荷時期 購入 PLAY BOY ACT1 200 EMOTION MAG ACT2 2,000 弾薬 感情弾のみ二週目から、その他は対応武器入手後より購入可 口径(名称) 価格 弾数 使用武器 ANEST.(22) 30DP 20 round Mk.2 LAUGH.(22) 50DP 20 round Mk.2 RAGE.(22) CRY.(22) SCREAM.(22) ANEST.(7.62mm) 40DP 10 round MOSIN-NAGANT LAUGH.(7.62mm) 60DP 10 round MOSIN-NAGANT RAGE.(7.62mm) CRY.(7.62mm) SCREAM.(7.62mm) .45ACP 20DP 20 count GSR,Operator,MK.23,TYPE17,M10 .50AE 30DP 20 count D.E.,D.E.L.B .50BMG 150DP 15 count M82A2 4.6x30mm 10DP 50 count MP7 5.45x39mm 20DP 40 count AN94 5.56x45mm 15DP 30 count M4 CUSTOM,AK102,XM8,MK.46 MOD1 5.7x28mm 30DP 50 count P90,FIVE SEVEN 7.62x42mm 30DP 20 count PSS 7.62x51mm 30DP 30 count MK.17,M14 EBR,G3A3,FAL CARBINE 7.62x54R 40DP 30 count SVD,PKM 7.62x67mm 50DP 20 count DSR-1 9x18mm 30DP 10 count PMM,VZ.83,BIZON 9x19mm 25DP 30 count G18C,MP5SD2 9.x39mm 40DP 30 count VSS 12GA (OD BUCK) 50DP 20 count M870 CUSTOM,TWIN BARREL,SAIGA-12,MASTERKEY 12GA (SLUG) 60DP 20 count M870 CUSTOM,TWIN BARREL,SAIGA-12,MASTERKEY 12GA (V.RING) 50DP 20 count M870 CUSTOM,TWIN BARREL,SAIGA-12,MASTERKEY 40mm G(GRENADE) 130DP 5 count MGL-140,XM320 40mm G(WP G) 120DP 5 count MGL-140,XM320 40mm G(STUN G) 130DP 5 count MGL-140,XM320 40mm G(SMOKE G) 100DP 5 count MGL-140,XM320 40mm G(GP30) 120DP 5 count GP30 25mm A.B.G. 150DP 10 count XM25 RAILGUN AMMO. 200DP 15 count RAILGUN LEAD BALL 40DP 10 count TANEGASHIMA RPG-7 AMMO. 250DP 3 count RPG-7 M72A3 200DP 3 count M72A3 JAVELIN 350DP 2 count JAVELIN FIM-92A 300DP 2 count FIM-92A カスタムパーツ 装着場所 名称 入荷時期 購入価格 対応武器 BOTTOM MOUNT MASTERKEY 初期 20,000DP M4 CUSTOM GP30 初期 30,000DP AK102,AN94 XM320 初期 60,000DP M4 CUSTOM,XM8 F.LIGHT(H.G.) 初期 3,000DP Operator,GSR,FIVE SEVEN,G18C FORE GRIP A 初期 2,500DP M4 CUSTOM,MK.17,M60E4,MK46 MOD1 FORE GRIP B 初期 2,500DP M4 CUSTOM,MK.17,M60E4,MK46 MOD1 MUZZLE MOUNT SUP.(OP) 初期 200DP Operator SUP.(1911) 対応武器入手後 200DP 1911 CUSTOM SUP.(MK.23) 対応武器入手後 200DP MK.23 SUP.(P90) 対応武器入手後 200DP P90 SUP.(M10) 対応武器入手後 200DP M10 SUP.(M4) 初期 200DP M4 CUSTOM SUP.(M14) 対応武器入手後 200DP M14 EBR TOP MOUNT DOT SIGHT 初期 20,000DP M4 CUSTOM,MK.17,M60E4,MK46 MOD1,M870 CUSTOM D.SIGHT(MP7) 対応武器入手後 20,000DP MP7 SCOPE 初期 35,000DP MP7,M4 CUSTOM,MK.17,M60E4,MK46 MOD1,M870 CUSTOM LEFT MOUNT LASER SIGHT 初期 30,000DP M4 CUSTOM,MK.17,M14 EBR,M60E4,MK46 MOD1 RIGHT MOUNT F,LIGHT(L.G.) 初期 7,000DP M4 CUSTOM,MK.17,M14 EBR,M60E4,MK46 MOD1 アイテム 名称 入荷時期 購入 S.PLUG MGOを10時間以上プレイ 10,000DP STEALTH クリア後 5,000,000DP BANDANA クリア後 5,000,000DP ドレビンへの売却価格について 同じ種類の武器を二回目以降手に入れるとドレビンに自動的に売却される。 売却価格=基本価格×武器の状態×戦場価格 基本価格はドレビンショップで売っている値段の3/10(高額武器に例外有り)。 武器の状態は ×1.00 マップに配置されている、ホールドアップか武装解除で奪取 ×0.30 NPCに倒された敵兵より? ×0.20 眠り・気絶状態の相手から ×0.10 死体から 戦場価格 ACT1 ACT2 ACT3 ACT4 ACT5 Easy ×1.00 ×1.00 ×1.20 ×1.50 ×2.00 N-Normal ×1.00 ×1.00 ×1.20 ×1.50 ×2.00 S-Normal ×1.00 ×1.00 ×1.20 ×1.50 ×2.00 Hard ×0.80 ×0.80 ×0.95 ×1.20 ×1.60 Extreme ×0.50 ×0.50 ×0.60 ×0.75 ×1.00
https://w.atwiki.jp/satoschi/pages/1498.html
コロラド語 |Barbacoan languages| 言語類型 現用言語 使用文字 ラテン文字【Latn?】 type living language writing system Latin alphabet ISO 639-3 【cof】 言語名別称 alternate names Campaz Colima Colorado Tsachila サチラ語ツァチェラ語◆三省堂「言語学大辞典」全文データベース Tsafiki Tsafiqui Tsáchela Tsáfiki 方言名 dialect names 参考文献 references WEB ISO 639-3 Registration Authority - SIL International the LINGUIST List Ethnologue Wikipedia
https://w.atwiki.jp/tidlv4/pages/21.html
+(Color) 1と2につないだ【Color】を足して、iににつないだ【Color】に結果を表示する 1 Input 1 …【Color】をつなぐ 2 Input 2 …【Color】をつなぐ ⅰ Output …【Color】をつなぎ、1と2を足した結果を表示する 備考
https://w.atwiki.jp/cohwbg/pages/12.html
Tips Tricks Single player Tips シングルプレイヤーチップス Disclaimer These tips are most likely incomplete, but might serve as a starting point. If you find a mistake here, please correct. 断り書き:これらの先端はたぶん不完全であるが、出発点として用いられるかもしれません。あなたが間違いをここで見つけるならば、修正してください。 In order to actually be able to choose a custom single player mission for playing, you have to create a custom campaign. This is fairly easily achieved by creating a yourcampaignname .camp file under %COH%/WW2/Data/Scenarios/sp/ with the following contents 実際に、遊ぶためにカスタムメイドのシングルプレイヤー任務を選ぶことができるために、あなたはカスタムメイドのキャンペーンをつくらなければなりません。これは、以下の中身で%COH%/WW2/Data/Scenarios/sp/の下でyourcampaignname.campファイルを作成することによって、かなり簡単に達成されます: Name="My campaign s name" ModName="WW2" Missions = { { name = "Some Mission name", -- I *believe* that this name is just an identifier of the campaign stage, not the mission s real name mission = "m01_mymission", }, } The mission itself resides as m01_mymission.sgb in the same directory as the .camp file. You can then choose a new campaign and start that mission. The name of the mission itself (in this case "m01_mymission") can be freely defined. 任務自体は、.campファイルと同じディレクトリのm01_mymission.sgbとして住みます。あなたは、それから新しいキャンペーンを選ぶことができて、その任務を始めることができます。任務(このケース「m01_mymission」で)自体の名前は、率直に定められることができます。 Please be aware, that single player missions require heavy duty scar scripting (use the mod tools to view a couple of the original campaign missions to get a picture). わかっていてください、そのシングルプレイヤー任務は特別丈夫な傷跡スクリプト(絵を得るために一対の最初のキャンペーン任務を見るための流行の最先端のツールを使います)を必要とします。 Within the mission, for each party (allies and axis) you need at least 1 ebps/gameplay/map_entry_point and 1 ebps/gameplay/starting_position_sp (sic!), belonging to each side. 大使館の中で、各党(同盟国と軸)のために、あなたは少なくとも1つのebps/ゲームプレー/map_entry_pointと1つのebps/ゲームプレー/starting_position_sp(原文のまま!)を必要とします。そして、両側に属しています。 You need at least these basic .scar contents for the mission to work あなたは、働くために、少なくともこれらの基本的な.scar中身を任務のために必要とします: import("ScarUtil.scar") function OnGameSetup() player1 = Setup_Player(1, "Allied Forces", "Allies", 1) player2 = Setup_Player(2, "Krauts", "Axis", 2) end function OnGameRestore() player1 = World_GetPlayerAt(1) player2 = World_GetPlayerAt(2) -- function takes care of restoring all global mission parameters after a save/load Game_DefaultGameRestore() end i will update this section as i move along with singleplayer maps. Unsorted Tips Tricks Unsortedについての情報とトリック Units cannot pass under bridges, ever. 決して、ユニットは橋の下に通ることができません。 Try to avoid situations in which the corners of four territory sectors touch each other. Either paint the territory so that they drift into each sector, or use a block of null/empty territory. 4つの領域セクターの角が互いに触れる状況を避けようとしてください。彼らが各々のセクターに流されるように、どちらでも領域を塗るか、大量の無効な/空の領域を使います。 Buildings can be a powerful point on your map, but care must still be taken when placing buildings as soldiers will only be able to fire out of windows - if your building has a blank wall, soldiers will not be able to fire out from inside the building on that side. 建物はあなたの地図の強力な点でありえます、しかし、建物が兵士とわかることがウインドウから火がつくことができるだけのとき、世話はまだされなければなりません - あなたの建物には窓のない壁があるならば、兵士はその側で中から建物を首にすることができません。 The default fog can make it difficult to view your map when zoomed out. To disable the fog open the Scenario menu at then select "Atmosphere Properties". Scroll down and un-check the box for "Fog". ズームアウトされるとき、デフォルト霧はあなたの地図を見ることを難しくすることができます。霧を働かなくするために、Scenarioメニューの当時の選ばれた「空気Properties」を開けてください。下にスクロールして、「霧」のために箱のチェック印をはずしてください。 Ambient Buildings can be destroyed, but once destroyed the area they were placed remains to block pathfinding - keep this in mind when placing your ambient buildings, no land units will ever be able to cross there. 周囲のBuildingsは破壊されることができます、しかし、一度、破壊されて彼らがそうであった地域は探検を妨害するために残りを置きました - あなたの周囲の建物を置くとき、これを覚えておいてください、土地単位はそこで交差することが決してできません。 Too many sectors can make it difficult for players to cut off the supply lines of their opponent, fewer sectors and good use of the null/empty territory can open some very interesting strategic options for players on your map. あまりに多くのセクターは、無効な/空の領域の彼らの反対者、より少しの地域と標準的使用の供給ラインをカットすることがあなたの地図の上でプレーヤーのために若干の非常に面白い戦略的なオプションを開けることができることをプレーヤーにとって難しくすることができます。 If you are experiencing problems viewing your territory sectors because the terrain interferes with it (known problem on certain system configurations) there is a quick fix あなたがあなたの領域セクターを見ている問題を経験しているならば、地形がそれ(特定のシステム構成の上の既知の問題)に干渉するので、応急処置があります: Hit the Tilde key (~) (on a Finnish keyboard it is ö ) and open up the console of your WorldBuilder. Type in this case-sensitive line dirt_debugtoggle("lodsplit") Tildeキー(~)(フィンランドのキーボードで、それはそうです)を打って、あなたのWorldBuilderのコンソールを開けてください。この大文字と小文字の区別ができる一報を入力してください:dirt_debugtoggle(「lodsplit」) A WorldBuilder bug prevents saving a long Scenario Description. Edit the MAPNAME.INFO file directly to create the description. Text should be placed between the double-quotes and may not exceed 255 characters (including spaces). You can force a line break by inserting \n where you want a break, so adding \n\n will result in a line space. The INFO file is overwritten by WorldBuilder on every save, so edit the file last or make a copy somewhere and copy over after a save. WorldBuilderの虫は、長いScenario Descriptionを保存するのを妨げます。説明を作成するために、直接MAPNAME.INFOファイルを編集してください。テキストはダブルクォートの間で置かれなければならなくて、255文字(スペースを含む)を上回らないかもしれません。あなたはあなたがブレークを望む\nを付け加えることによって改行を強制することができますので、\n\nを加えることは行間に終わります。INFOファイルはあらゆるセーブに関してWorldBuilderによって上書きされますので、最後にファイルを編集するか、セーブの後、どこかのコピーとコピーを変更してください。 From Relic Community Wiki
https://w.atwiki.jp/sampleisbest/pages/589.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) プロジェクト テンプレート C++ 空のプロジェクト プロジェクト名 dx9sample2 参考 HLSLによる極短レンダリング:サンプルプログラム DirectX Software Development Kit (DXSDK_Jun10)をインストールする。 Download DirectX Software Development Kit from Official Microsoft Download Center プロジェクト構成プロパティ VC++ ディレクトリに以下のパスを追加する。 インクルード ディレクトリ C \Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include ライブラリディレクトリ C \Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 dx9sample2.cpp #pragma comment(lib, "d3d9") #pragma comment(lib, "d3dx9") #include Windows.h #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) if(p){p- Release();p=NULL;} struct CUSTOM_VTX { float x, y, z; DWORD color; }; #define CUSTOM_FVF (D3DFVF_XYZ | D3DFVF_DIFFUSE) // 外部変数 LPDIRECT3D9 pD3D; LPDIRECT3DDEVICE9 pD3DDev; LPD3DXEFFECT pEffect; IDirect3DVertexBuffer9* pVertex; IDirect3DVertexDeclaration9* pDecl; float t = 0; // 関数プロトタイプ宣言 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); HWND InitWindow(HINSTANCE hInstance, int nCmdShow); HRESULT InitD3D(HWND hWnd); void Cleanup(); void Render(); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) { HWND hWnd = InitWindow(hInstance, nCmdShow); if (!hWnd) return -1; HRESULT hr = InitD3D(hWnd); if (FAILED(hr)) { Cleanup(); return -1; } ShowWindow(hWnd, nCmdShow); MSG msg = { 0 }; while (msg.message != WM_QUIT) { if (PeekMessage( msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { Render(); } } Cleanup(); return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wParam, lParam); } HWND InitWindow(HINSTANCE hInstance, int nCmdShow) { WNDCLASSEX wc = { sizeof WNDCLASSEX }; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = HBRUSH(COLOR_WINDOW + 1); wc.lpszClassName = L"dx9sample2"; if (!RegisterClassEx( wc)) return NULL; DWORD deStyle = WS_OVERLAPPEDWINDOW ^ WS_MAXIMIZEBOX ^ WS_THICKFRAME; RECT rc = { 0, 0, 400, 400 }; AdjustWindowRect( rc, deStyle, FALSE); HWND hWnd = CreateWindow( wc.lpszClassName, L"dx9sample2", deStyle, CW_USEDEFAULT, 0, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL); return hWnd; } HRESULT InitD3D(HWND hWnd) { HRESULT hr; pD3D = Direct3DCreate9(D3D_SDK_VERSION); if (!pD3D) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp = { 0 }; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.Windowed = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_UNKNOWN; d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT; hr = pD3D- CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, d3dpp, pD3DDev); if (FAILED(hr)) return hr; // ファイルからシェーダを作成 LPD3DXBUFFER pError; hr = D3DXCreateEffectFromFile( pD3DDev, L"effect.fx", NULL, NULL, D3DXSHADER_DEBUG, 0, pEffect, pError); if (FAILED(hr)) { if (pError) { OutputDebugStringA((LPCSTR)pError- GetBufferPointer()); } SAFE_RELEASE(pError); return hr; } SAFE_RELEASE(pError); // x, y, z, ARGB CUSTOM_VTX vtx[] = { { 0, 0, 1, 0xff0000ff }, { 0, 1, 0, 0xff00ff00 }, { 1, 0, 0, 0xffff0000 }, }; // 頂点バッファの作成 hr = pD3DDev- CreateVertexBuffer( sizeof vtx, D3DUSAGE_WRITEONLY, CUSTOM_FVF, D3DPOOL_MANAGED, pVertex, NULL); void* pData; hr = pVertex- Lock(0, 0, pData, 0); memcpy(pData, vtx, sizeof vtx); hr = pVertex- Unlock(); // 頂点宣言の作成 D3DVERTEXELEMENT9 ve[] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, { 0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 }, D3DDECL_END() }; hr = pD3DDev- CreateVertexDeclaration(ve, pDecl); return S_OK; } void Cleanup() { SAFE_RELEASE(pDecl); SAFE_RELEASE(pVertex); SAFE_RELEASE(pEffect); SAFE_RELEASE(pD3DDev); SAFE_RELEASE(pD3D); } void Render() { pD3DDev- Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1, 0); pD3DDev- BeginScene(); D3DXMATRIX mat; D3DXMatrixRotationZ( mat, t); pEffect- SetMatrix("mat", mat); t += 0.01f; pEffect- SetTechnique("T0"); UINT pass; pEffect- Begin( pass, 0); pEffect- BeginPass(0); pD3DDev- SetStreamSource(0, pVertex, 0, sizeof CUSTOM_VTX); pD3DDev- SetVertexDeclaration(pDecl); pD3DDev- DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1); pEffect- EndPass(); pD3DDev- EndScene(); pD3DDev- Present(NULL, NULL, NULL, NULL); } effect.fx struct VS_INPUT { float4 pos POSITION; float4 color COLOR; }; struct VS_OUTPUT { float4 pos POSITION; float4 color COLOR; }; // constant float4x4 mat; VS_OUTPUT VS(VS_INPUT input) { VS_OUTPUT output; //output.pos = input.pos; output.pos = mul(input.pos, mat); output.color = input.color; return output; } float4 PS(float4 color COLOR) COLOR { return color; } technique T0 { pass P0 { VertexShader = compile vs_2_0 VS(); PixelShader = compile ps_2_0 PS(); } }