約 3,521,650 件
https://w.atwiki.jp/pcmemo/pages/19.html
Direct3Dでスクリーン座標を指定して描画する FVFの頂点座標にD3DFVF_XYZRHWを使う 変換済みの頂点座標的な意味らしい (FVF例) struct VERTEX{ D3DXVECTOR4 pos; D3DCOLOR diffuse; } #define VERTEX_FVF ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE ) 頂点座標の4番目wには1.0fを入れておけばいいらしい (描画例) void drawRect(LPDIRECT3DDEVICE9 pDevice, float x, float y, float width, float height, D3DCOLOR color) { D3DXVECTOR4 v4; VERTEX vertex[4]={ {D3DXVECTOR4(x, y, 0.0f, 1.0f), color}, {D3DXVECTOR4(x + width, y, 0.0f.0f, 1.0f), color}, {D3DXVECTOR4(x, y + height, 0.0f, 1.0f), color}, {D3DXVECTOR4(x + width, y + height, 0.0f, 1.0f), color} }; m_pD3DDevice- SetFVF(VERTEX_FVF); m_pD3DDevice- DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, vertex, sizeof(VERTEX)); }
https://w.atwiki.jp/directx11/pages/13.html
簡易掲示板です。 何かありましたらコメントを。 てすと -- 管理人 (2011-02-19 19 34 30) 分かりやすかったですよー、ただ「空のウィンドを表示する」からは必要な部分だけとか、そうでなくとも色変えるとかしてくれると良かったかもです -- 初 (2012-03-13 23 24 33) 名前 コメント
https://w.atwiki.jp/bokuyo/pages/190.html
D3DX はどこへ消えた?(DirectXTK と DirectXTex を導入する) 別途 DirectX SDK をインストールせずとも、Windows SDK 8.0 に含まれるようになったため DirectX を扱うのが楽になりました。ちなみに、Windows SDK 8.0 は Visual Studio 2012 と一緒にインストールされます。 次のページに、Windows SDK に含まれるようになった DirectX SDK について説明があります。MSDN - Where is the DirectX SDK? 上記のページを見ると、D3DX を使ったプログラムに関してはがんばって対処する必要がある、とあります。というのも、D3DX は Windows SDK 8.0 に含まれる DirectX SDK では廃止されたからです。 今まで D3DX を使ってた人はどうすればいいのか。 解決案(1) DirectX SDK を別途インストールして使う Where is the DirectX SDK? にあるように D3DX を使う場合は、今までのように DirectX SDK を使ってください。 warning C4005 が出るので、pragma プリプロセッサを使って、見なかったことにするといいでしょう。 #pragma warning(push) #pragma warning(disable 4005) #include d3d11.h #include d3dcompiler.h #include d3d11shader.h #pragma warning(pop) // Direct3D extension. #if ( _MSC_VER 1000 ) #pragma comment(lib, "d3dx11.lib") #endif #pragma warning(push) #pragma warning(disable 4005) #include D3DX11.h #pragma warning(pop) 解決案(2) DirectXTK, DirectXTex を使って D3DX を置き換える Where is the DirectX SDK? によると「代わりに、DirectX Tool Kit と、DirectXTex を使ってね」ということなので置き換えて使いましょう。 ちなみに D3DX の数学系ライブラリの場合は XNAMath で置き換えることが可能です。XNAMath は DirectXTex に含まれているのでそっち使ってもおっけー DirectX Tool Kit(DirectXTK) のインストール 下記ページよりダウンロードhttp //directxtk.codeplex.com/ DirectXTex のインストール 下記ページよりダウンロードhttp //directxtex.codeplex.com/ 解凍したフォルダに、ソリューションファイルがあるのでそれを開いてそのままビルドすればライブラリファイル "DirectXTex.lib" は出来上がります。 例:D3DX を DirectXTex に置き換える D3DX を使ってテクスチャを読み込んでる方も多いでしょう。おそらく D3DX が使えなければ次のようなエラーが出ます。 error C3861 D3DX11CreateTextureFromFile 識別子が見つかりませんでした このエラーに対処するべく DirectXTex を使います。 方法 DirectXTex の中に、DDSTextureLoader というのが用意されてます。 DDSTextureLoader.h, DDSTextureLoader.cpp をそのまま使用したいプロジェクトファイルに追加しちゃってください。 D3DX.h の代わりに、DDSTextureLoader.h をインクルードしましょう 使用する前にターゲット OS を明示的に指定 設定の方法は、Visual Studio 上から プロジェクトのプロパティ - 構成プロパティ - C/C++ - プリプロセッサ - プリプロセッサの定義 _WIN32_WINNT=0x0600 Windows 8 をターゲットにする場合は、0x602 を設定します。 同様に、Windows 7 の場合は 0x601, Vista で動かしたい場合は、0x600 などを設定してください。 詳しくは次の記事を参照:http //d.hatena.ne.jp/poyonon/20121106/1352152645 エラー:D3DCOMPILER_46.dll がない コンピューターに D3DCOMPILER_46.dll がないため、プログラムを 開始できません。この問題を解決するには、プログラムを再インスト ールしてみてください。 解決策 実行ファイルと同じフォルダに D3DCOMPILER_46.dll をいれるファイル検索すれば、Windows SDK 内で発見できると思います。 ちなみに DLL の再配布については下記のページを参考にしてくださいMSDN - 再配布する DLL の決定 MSDN - 配置方法の選択
https://w.atwiki.jp/goodgames/pages/877.html
DirectX11.1 いつか来るだろうと思っていたら遂に来た。EAからの抗議のメール。 悪口は程々にしろといつか言われると思っていましたが。 なんと田中美香社長から直々に。 でもアドレスがgmail。 内容はDirectX11.1とBF4の関係に関する御質問でした。(苦笑) 本件、いくつかの誤解があるんじゃないかと思います。 普通ならご本人に直接確認するところですが 社長のgmail宛に変なメール送るわけにもいかないのでここに書いておきます。 まずDirectX11.1高性能説。 答えはここDirect3D 11.1 Features(SDK仕様英語版)に全て書いてありますので読んでみて下さい。 と書いて終わりにしたら怒られるので続行します。 そもそもの話ですがDirectXってなんだか御存知でしょうか? Windows上で3Dグラフィクスを使うためのAPIですか。 なるほど。XBOXは無視ですね。 いいえ、そんな意地悪な質問をしているわけではありません。 XBOXの話は置いておいて、Windowsの話だけに的を絞ると、 DirectXはWin32APIを経由せずに直接各種ハードウェアをアクセスするためのAPI群の「総称」です。 従って、3Dグラフィクスとは関係のないDirectXも色々とあります。 例えば音。DirectAudioやDirectSound。 さらに入力デバイスアクセスはDirectInput。 これはキーボードやマウスだけでなく、ゲームパッドなどの状態も取得出来ます。 他にも色々とあったような気がしますが忘れました。 そして主役のDirect3D。 これのおかげで我々はゲームが楽しめるわけです。 が、これ文字通り3D専用なんですね。なんと2D描画が全く出来ません。 2Dなんて不要ですか。でもそれだとチャットが表示出来ませんね。 チャットの文字が3D風に飛び出してくるのはちょっとイヤですね。 自分のHPや武器の残弾数なども全て単純な2D描画です。 他にも色々とあります。スコアボードは典型的な2Dですし、オプションの各種設定画面も2Dです。 しかし... 恐らくBFBC2あたりまでは一見2Dに見える描画も実は全て3Dになってしました。 これ文章で書くと全然イメージが伝わらないと思います。 かと言って絵を描く時間は無く、サンプルプログラムを用意するほどの話でもないので このまま文字で続行しますが。 3Dゲームとは仮想的な3次元空間の中でプレイすることは誰もが理解していると思います。 従って、幅(X)、高さ(Y)、奥行き(Z)の3軸の概念があります。 この空間に2Dの描画を行うと何が問題になるかと申し上げると たった一言なのですが常に遠近感が表現されてしまうところが大きな問題になります。 単純に考えると遠近感は自分からの距離が問題になるため、 奥行き(Z軸)を中心に考えることになりますが、 仮想的な3D空間に2D描画を行う場合、奥行きはゼロを指定します。 つまり、自分からの距離がゼロの地点に厚さの無いジオメトリ(オブジェクト)を描画すれば2Dになるわけです。 すみません。これはウソです。いいえ、半分ぐらいは事実ですが。 このままだとまた問題が発生します。 奥行きはゼロなので一番手前に2Dの物体が描画されます。 でも仮想的な3D空間では左右(X軸)や上下(Y軸)でも遠近感が発生します。 これ当然ですよね。 自分の目の前(奥行き方向の距離はゼロ)で地上に止っている飛行機と、 同じく奥行き方向の距離はゼロでも上空1000mの戦闘機が同じ大きさで見えたらおかしいじゃないですか。 左右方向も同じことになります。 従って、 {仮想的な3D空間では画面中心の一点以外は全て遠近感が発生する}ことになります。 本当はココに絵を描きたいところですが.... はい、描いてきました。力作です。(苦笑) 絵の中に書いた文言がイマイチでした。 正しくは「Direct3DでScoreBoardを描く場合、このような形が四角く描画される」となります。 理由は前述の通り、画面中央から遠い位置程遠近感の影響で中央方向に縮んで描画されるためですね。 四隅が尖っていますが、四隅が中央から一番遠くに位置するため、中央方向に縮められた結果、四角く描画されます。 Direct3Dってなんて面倒なんでしょう。 でも数年前までは本当にこんなことをしていたんですね。 実際にはFrostbiteなどなどの描画エンジンが自動的に収縮率の計算を行うので、 グラフィックデザイナーは四角くデザインすれば良いのですが、 VRAM上に展開されるタイミングでは本当にこのように変形させた2Dオブジェクトが必要でした。 大昔にはDirectDrawと名付けられた2DAPIも存在していましたが、Direct3Dとの相性の悪さから廃止されてしまいました。 ようやくDirectX10.1になり、Direct2DなるAPIが実装されたことによりこの問題の大部分が解決しました。 普通に四角く描けば四角く画面に描画される。 当たり前のことが当たり前に実現出来る時代がようやく到来しました。 しかしまた暗転。 大ヒット作だったDirectX9に比べ短命だったのがDirectX10。 DirectX10.1がリリースされたものの、あっさりとDirectX11にその座を譲ることになりました。 ここ某Microsoftさんが暴挙に出ました。 なんと、Direct2DはDirectX10.1でしか動かなかった!! 長くなりすぎたので一気に結論に突入します。 他にも質問を頂いているので。(苦笑) Direct2DがDirectX10.1でしか動かないのはある意味事実なのですが、 もう一歩正しく描くとDirectX10.1からしか呼び出せなかったとなります。 そのためDirectX11時代は下記のような方式でDirect2Dを利用していました。 Direct2D - DirectX10.1 - DirectX11 一度DirectX10.1用の画像を生成しその画像をDirectX11のAPIに渡す方式です。 明らかに無駄 結論。 DirectX11.1ではDirect2Dと直接連携して処理を行うことが可能となり、 DirectX10.1が介在するオーパヘッドが無くなるため以前より高性能になります。 でも2D描画って元々描画負荷は微々たるものだし、 DirectX10.1が介在していたことによるオーパヘッドは全てCPU負荷になるため、 GPU処理にはなんら影響を与えないんですよね。 DirectX11.1とBF4と問われているため、BF4への影響になりますが 先日実施した推奨環境に関する微妙な試験でもわかる通り、 ほぼ間違いなくBF4ではGPUネックになることが予想されるため、 相当古いモデルのCPUを使わない限りCPU負荷が下がることがメリットになることは無いんじゃないかと思います。 DirectX11.1ではその他にもいくつか改善点がありますが、 3Dゲームの性能に影響を与えるものはほとんど含まれていません。 ではの御質問へ次へ。 ( - )
https://w.atwiki.jp/pocco/pages/16.html
TipsD3DXのメッシュサポート D3Dデバイス アラインメント構造体 Tips D3DXのメッシュサポート D3DX は、x ファイルの内容のロード、操作、レンダリングを行うためのメッシュ コンストラクトを実装しています。 メッシュとは、基本的には、何らかのジオメトリを定義している頂点の集合と、 面を定義しているインデックスのセットです。D3DX のメッシュにはいくつかの種類があります。 ID3DXBaseMesh は基本的な機能を提供しています。 ID3DXMesh と ID3DXPMesh は ID3DXBaseMesh を継承しており、 それぞれチップ単位の頂点キャッシュを使用したメッシュ最適化と、 Hughes Hoppes のプログレッシブ メッシュの研究に基づくプログレッシブ メッシュを追加しています。 ID3DXSPMesh は単純化メッシュを、ID3DXSkinMesh はスキン メッシュ サポートを提供します。 この階層は次のようになっています。 ベース メッシュ ID3DXBaseMesh これは基底メッシュ クラスであり、インスタンス化してはなりません。他のすべてのメッシュ クラスはこのクラスを継承します 最適化メッシュ ID3DXMesh (ID3DXBaseMesh) 大部分のオブジェクト表現に使用される標準のメッシュ オブジェクトを定義する基本的なメッシュ クラスです。 プログレッシブ メッシュ ID3DXPMesh (ID3DXBaseMesh) オブジェクトをプログレッシブ メッシュ形式で表現する手段を定義する、基本的なメッシュ クラスの拡張です。プログレッシブ メッシュでは、メッシュ オブジェクトをプログレッシブにリファインしていくことができます。 単純化メッシュ ID3DXSPMesh (ID3DXMesh) 特定のメッシュを面の数の少ないメッシュに単純化するために使用される単純化メッシュを定義する、基本的なメッシュ クラスの拡張です。 スキン メッシュ ID3DXSkinMesh (ID3DXMesh) プログレッシブ メッシュ LODを使うときに必要。他にもいろいろ。 パッチ メッシュ 特殊なタイプのパッチ メッシュとして、矩形パッチと三角形パッチの 2 つもサポートされています。矩形パッチメッシュは、制御点が曲がった矩形シーケンスとしてレイアウトされるパッチメッシュです。矩形パッチと三角形パッチは、高次サーフェイスを作成するために使われます。パッチメッシュは三角形メッシュほど一般的には使われません。 D3Dデバイス 指定の Microsoft Direct3D オブジェクトによって作成されたレンダリング デバイスは、すべて同じ物理リソースを共有します。 単一の Direct3D オブジェクトから複数のレンダリング デバイスを作成することは可能ですが、これらはすべて同じハードウェアを共有するため、パフォーマンスが大きく低下します。 アラインメント構造体 D3DXMATRIXA16 16 バイト整列の行列は、D3DX の算術関数で使うとき、Pentium 4 プロセッサでのパフォーマンスを上げるために最適化されています。行列は、プログラム スタック、ヒープ、グローバルスコープなどの行列の作成場所に関係なく整列されます。整列は __declspec(align(16)) を使って行われ、これは Microsoft Visual C++ .NET と Visual C++ 6.0 ではプロセッサパックがインストールされている場合にのみ動作します。ただし、プロセッサ パックを検出する方法はないため、デフォルトでバイト整列が有効なのは Visual C++ .NET のみです。 D3DX では、ベクトルとクォータニオンはバイト整列されません。D3DX の算術関数でベクトルやクォータニオンを使う場合は、_declspec(align(16)) を使ってバイト整列のベクトルやクォータニオンを生成します。その方が、パフォーマンスが大幅に向上します。
https://w.atwiki.jp/asato/pages/201.html
西川善司の3Dゲームファンのための「DirectX 10.1最終仕様」講座-AMD独断専行、NVIDIAはやらないかもしれない10.1
https://w.atwiki.jp/kentag/pages/17.html
Windows上で、動画や音声や3Dグラフィックスなどを効率的に動かす為のプログラム。 最新のバージョンにしておかないと、不具合が起きる場合があるので、「プレイ準備-ゲームをはじめるには-うまくゲームが開始できない?」を参照して、最新バージョンにしてください。 DirectXの更新は無料です。 トップページに戻る
https://w.atwiki.jp/api_programming/pages/186.html
https //api.toodledo.com/3/contexts/index.php 概要 コンテクストとはGTDでよく用いられる概念。どの状況でどのタスクをするべきなのか、という考え方。例えば、'work', 'home', 'shopping' などがよく用いられるコンテクストである。 Jump To Retrieving Contexts Adding Contexts Editing Contexts Deleting Contexts Errors コンテクストの同期 Syncing contexts is fairly straight forward. The first thing to do is add any new contexts you have created and delete any contexts that you have deleted. Then, look at the "lastedit_context" timestamp returned from Account Info to determine if any changes have happened on the server since the last time you synced. If yes, then you need to fetch the contexts from the server and integrate this into your local copy. This is where you would do conflict resolution if a context was edited in both places. After this, if you have any contexts that you edited, you can send these edits up to the server. Sync Flowchart コンテクストの取得 contexts/get.php GET or POST. 使っているコンテクストのリストが返ってくる名前とID番号が入っている http //api.toodledo.com/3/contexts/get.php?access_token=yourtoken This call will return a JSON encoded object that looks like this. response id 123 name Work private 0 [{"id" 123,"name" "Work","private" 0},{"id" 456,"name" "Home","private" 1},{"id" 789,"name" "Car","private" 0}] You can also specify xml as the output format for any API calls by attaching "f=xml" to the URL. http //api.toodledo.com/3/contexts/get.php?access_token=yourtoken f=xml contexts context id 123 /id name Work /name private 0 /private /context context id 456 /id name Home /name private 1 /private /context context id 789 /id name Car /name private 0 /private /context /contexts Adding Contexts Add a context using the "contexts/add.php" API call. You can access this via POST. Context names must be unique within an account. If you try to add a context that already exists, you'll get an error. Each user can have up to 1000 contexts. If you try to add more than this, you will get an error. name A text string up to 32 characters. (required) private A boolean value (0 or 1) that describes if this context can be shared. A value of 1 means that this context is private. http //api.toodledo.com/3/contexts/add.php name=MyContext access_token=yourtoken If the add was successful the new context will be returned. [{"id" 12345,"name" "MyContext","private" 0}] contexts context id 12345 /id name MyContext /name private 0 /private /context /contexts Editing Contexts Edit a context using the "contexts/edit.php" API call. You can access this via POST. Context names must be unique within an account. If you try to edit the context name to one that already exists, you will get an error. If you try to edit the context, but pass in the same values that already exist on the server, you will get an error. You should avoid making unnecessary edits. id The id number of the context to edit. (required) name A text string up to 32 characters. (required) private A boolean value (0 or 1) that describes if this context can be shared. A value of 1 means that this context is private. http //api.toodledo.com/3/contexts/edit.php id=12345 name=MyContext access_token=yourtoken If the edit was successful the edited context will be returned. [{"id" 12345,"name" "MyContext","private" 0}] contexts context id 12345 /id name MyContext /name private 0 /private /context /contexts Deleting Contexts The "contexts/delete.php" API call will allow you to permanently delete a context. You can access this via POST. Any tasks that have this context will have their context set to "none". id The id number of the context to delete. (required) http //api.toodledo.com/3/contexts/delete.php id=12345 access_token=yourtoken If the delete was successful you will get the following message. {"deleted" 12345} deleted 12345 /deleted Error Codes Any of the API calls can return error messages. Here is a list of the error messages that you may receive from the contexts API endpoints. If there was an error when editing or deleting a context, the id number that you attempted to edit will be included in the error's "ref" field for your reference. 301 Your context must have a name. 302 A context with that name already exists. 303 Max contexts reached (1000). 304 Empty id. 305 Invalid context. 306 Nothing was edited. Examples {"errorCode" 302,"errorDesc" "A context with that name already exists","ref" 1234} error id="302" ref="1234" A context with that name already exists /error Privacy · Terms · Copyright Toodledo © 2004-2016
https://w.atwiki.jp/api_programming/pages/72.html
下位ページ Saved Search タスクの削除 タスクの取得 タスクの編集 タスクの追加 情報フィールド Content Task(タスク)のデータフィールド Adding Tasks Deleting Tasks Error Codes Task(タスク)のデータフィールド retrieve, setに共通して用いられるフィールド GT AD ED DN DD SR フィールド 定義 フォーマット、制限 △ ◯ added タスクが追加された日。UNIX時間で表記。 タスクが追加された「時間」は記録されない。常に正午としてカウントされる。 △ ◯ addedby タスクを割り当てたユーザのId (※subscriptionユーザ限定). ◯ × after この時間以降に更新したタスクを探索 UNIX時間。 △ ◯ attachment 添付アイテムの配列。各アイテムは3つのフィールドを含む。添付アイテムは読み取り専用。アウトラインを参照するidを使えます。リスト(list)、ノート(note)はこのAPIを通して取得可。ファイルは現在読めないが、機能追加準備中。 ○ - - - - × before この時間以前に更新したタスクを探索 UNIX時間。 × ◯ checked Whether the task is completed or not △ ◯ children このタスクが持つサブタスク数 サブタスク自身や、サブタスクを持たないタスクは0 ◯ comp 未完了、完了の選択。 0 未完のみ、1 完了のみ、無しor-1 両方 × ◯ ◯ completed いつタスクが完了したか 未完了の場合、0.UNIX時間。Toodledoはタスクが完了した「時間」はトラッキングしない。そのため、タスクは正午に完了、として処理される。 △ ◯ ◯ context コンテクストのID番号 コンテクスト割当なしの場合は省略(もしくは0) △ ◯ ◯ duedate タスクの期限(日) UNIXタイムスタンプ(GMTの正午)タイムスタンプ=1445172465↓日時(Tokyo)=2015/10/18 21 47 45 △ ◯ ◯ duedatemod 期限(日)のタイプを示す整数 0 Due By1 Due On (=)2 Due After ( )3 Optionally (?) △ ◯ ◯ duetime for when the task is due. UNIX時間。設定しなければ0.duedateが設定されず、duetimeのみが設定されていると、1970年1月1日と判断。タイムゾーンにかかわらず、10amは10amと判断。You can convert this timestamp to a GMT string and display the time component without worrying about timezones. ◯ duration ○ fields レスポンスに付けて返してほしいフィールド コンマ区切り。レスポンス向上のため、不用なら省略する。 △ ◯ ◯ folder フォルダのID番号 フォルダ割当なしの場合は0もしくは省略。 △ ◯ ◯ goal goalのID番号 goal割当なしの場合は省略(もしくは0) △ - ● - - × id タスクID アカウントに対してユニークな番号(違うアカウントに対しては、同一のIDに対して異なるタスクがぶら下がる可能性あり。 △ ◯ length タスク達成までの予想時間(分、整数値) △ ◯ ◯ location 場所のID番号 割当なしの場合は省略(もしくは0) △ ◯ meta A text for storing metadata about the task. This is useful for syncing data that cannot otherwise be synced to Toodledo. Because of an implementation detail, using the meta field introduces extra latency to each API call, so you should only use this field when necessary. 1,024バイトまで。タスクごとにユニークなIDを持ち、AppIDに対してprivate。ユーザーもAppIDsも個々に入力した値は見られない。 - ◯ modified for when the task was last modified. UNIX時間。 △ ◯ note ノート 32,000 bytesまで。改行コードは\n ◯ num 取得するタスク数。複数ページで表示する場合などに使用 デフォルト値、最大値ともに1000 △ × order サブタスクの順番 読み取り専用 △ ◯ parent 親タスクのID番号 デフォルト値はO △ × previous If the task was repeated from another task, this will contain the id number of the previous version of this task. △ ◯ ◯ priority 優先順位。整数値。 3 = Top2 = High,1 = Medium,0 = Low,-1 = Negative, △ ◯ ◯ remind リマインダが送られる、タスクの期限までの時間(分)を表す整数値。 0 リマインダなし値の制限:0, 1, 15, 30, 45, 60, 90, 120, 180, 240, 1440, 2880, 4320, 5760, 7200, 8640, 10080, 20160, 43200)。これ以外は近い値に丸め。無料ユーザーは0か60。 △ ◯ ◯ repeat どのようにタスクを繰り返すかを示す文字列 記録を残すため、リピートするタスクが完了した場合ははコピーされたタスクがリストに加えられ、完了タスクに対して、新しいID番号が付与される。繰り返しを中止するには、これに空文字列を設定。記法は※を参照。 △ ◯ shared that indicates if the task is shared as a joint task (Subscription required for user). A boolean (0 or 1) 。読み取り専用 - × sharedowner The user id of the person who owns the task that is being shared with the current user. If the current user is not the owner, then they cannot make changes to the collaboration settings for this task, although they can make other changes. 読み取り専用 - × sharedwith An array of user ids for people that this task is shared with, other than myself and the owner. Read only. △ ◯ ◯ star スターの有無 0 スターあり1 スターなし ◯ start スキップするタスク数。複数ページで表示する場合などに使用 デフォルト値は0 △ ◯ ◯ startdate タスクの開始(日) A GMT unix timestamp △ ◯ ◯ starttime for when the task starts. UNIX時間。 △ ◯ ◯ status タスクのステータスを表す整数値 0 = None, 1 = Next Action,2 = Active, 3 = Planning,4 = Delegated, 5 = Waiting,6 = Hold, 7 = Postponed,8 = Someday, 9 = Canceled,10 = Reference × ◯ subtask △ ◯ ◯ tag タグ 複数の場合はコンマで区切る。64文字まで。 △ ● ◯ - - ◯ title タスクタイトル 文字列。255文字まで。 △ ◯ timer The value in the timer field indicates the number of seconds that have elapsed for the timer not including the current session. × ☓ timeron (タイマーON時)タイマースタート時間のタイムスタンプ Total Time=timer+(now-timeron). Where "now" is a unix timestamp for the current time. △ ◯ via A read-only field that indicates how the task was added. 読み取り専用-0 Main website-1 Email Import,-2 Firefox Addon-3 This API,-4 Widgets (Google Gadget, etc)-5 Not used,-6 Mobile Phone-7 iPhone App,-8 Import Tools-9 Twitter ※繰り返し(repeat)を表現する文字列は、iCal RRULEフォーマットに従う。 "FREQ=DAILY" "FREQ=WEEKLY;BYDAY=TU" 但し、Toodledoで全てのiCal RRULEが解釈されるわけではない(鋭意対応中)。ので、ToodledoのFAQを参照のこと。ユーザーがGUIや人間が理解できる文字列(英語)で記入する。iCalのルールに変換される。 There are three enhancements to the iCal RRULE format that we have made to support some advanced Toodledo features. Subtasks can repeat based on their parent's repeat value. There is not a comparable iCal RRULE for this, so we have a custom RRULE of "PARENT" to indicate this setting. Tasks can be set to repeat from their due-date or their completion date. There is not a way to indicate this in a standard iCAL RRULE. To indicate this, we have a custom string of ";FROMCOMP" that we append to the RRULE if the task is set to repeat from the completion date. The absence of this string means that the task repeats from the due-date. Normally, when a task is rescheduled it moves forwards by 1 occurrence. If the user has procrastinated, the new due-date could still be in the past. Toodledo will have the option to indicate that certain repeating tasks should be rescheduled to the next future occurance of the task. If this is the case, the custom ";FASTFORWARD" string will be appended to the RRULE. Adding Tasks http //api.toodledo.com/3/tasks/add.php access_token=yourtoken tasks=[{"title" "My Task"},{"title" "Another","star" "1","ref" "98765"},{"title" "","ref" "1234"}] fields=folder,star METHOD POST 一度に登録できるタスクは50個まで "tasks/add.php" API call with an array of tasks. 必須パラメータ title field 任意パラメータ folder, context, goal, location, priority, status,star, duration, remind, starttime, duetime, completed, duedatemod, repeat, tag, duedate, startdate, note, parent, meta (see above for possible values). "ref"という特殊フィールドが用意されている。 同期後のマッチングを助ける refフィールドはタスクにはセーブされない。このAPIをコールした後に帰ってくるのみ。 Tasks are added by creating a JSON object (example below) and submitting a POST to the API. 改行は "\n" で表現する。 記号は %XX 形式で置き換えられるし、スペースは + でエンコードされる。 Each element in the array will be a task object. You only need to set the fields that you want to set. 効率を考えるとセットしたいフィールドだけをセットすべき。 For efficiency, you should try to send only the fields that you are setting. If the action was successful the added tasks will be returned in the same order in which they were added. If there were any errors on individual tasks, they will be output inline with the returned tasks, so you can determine which action failed. You can also specify xml as the output format for any API calls by attaching "f=xml" to the URL. http //api.toodledo.com/3/tasks/add.php access_token=yourtoken Deleting Tasks The "/tasks/delete.php" API call will allow you to permanently delete up to 50 tasks at a time. You can access this via POST. For tasks that the user wants available in the history section, or for tasks that continue to repeat, you should not use this method. Instead, you should edit the task and mark it as completed. Tasks are deleted by submitting a JSON encoded array of id numbers to the API. http //api.toodledo.com/3/tasks/delete.php access_token=yourtoken tasks=["1234"%2C"1235"%2C"5678"] If the action was successful the deleted tasks's id numbers will be returned. If there were any errors on individual tasks, they will be output inline with the returned tasks, so you can determine which action failed. [{"id" 1234},{"id" 1235},{"errorCode" 605,"errorDesc" "Invalid ID number","ref" "5678"}] You can also specify xml as the output format for any API calls. http //api.toodledo.com/3/tasks/delete.php access_token=yourtoken tasks=["1234"%2C"1235"%2C"5678"] f=xml deleted id 1234 /id id 1235 /id Invalid ID number /deleted Get Deleted Tasks The "/tasks/deleted.php" API call will enable you to detect when a task was deleted on Toodledo, so you can also delete the task from your application. You can access this via GET or POST. after A GMT unix timestamp. Used to find tasks with a deletion date and time after this date and time. http //api.toodledo.com/3/tasks/deleted.php access_token=yourtoken after=1234567890 This returns a list of id numbers and datetime stamps. [{"num" 24},{"id" 1234,"stamp" 1234567891},{"id" 1235,"stamp" 1234567892}] You can also specify xml as the output format for any API calls. http //api.toodledo.com/3/tasks/deleted.php?access_token=yourtoken after=1234567890 f=xml deleted num="2" task id 12345 /id stamp 1234567891 /stamp /task task id 67890 /id stamp 1234567892 /stamp /task /deleted Error Codes Any of the API calls can return error messages. Here is a list of the error messages that you may receive from the tasks API endpoints. If there was an error when editing or deleting a task, the id number that you attempted to edit will be included in the error's "ref" field for your reference. 601 Your task must have a title. 602 Only 50 tasks can be added/edited/deleted at a time. 603 The maximum number of tasks allowed per account (20000) has been reached 604 Empty id 605 Invalid task 606 Nothing was added/edited. You'll get this error if you attempt to edit a task but don't pass any parameters to edit. 607 Invalid folder id 608 Invalid context id 609 Invalid goal id 610 Invalid location id 611 Malformed request 612 Invalid parent id 613 Incorrect field parameters 614 Parent was deleted 615 Invalid collaborator 616 Unable to reassign or share task Examples JSON {"errorCode" 601,"errorDesc" "Your task must have a name","ref" 1234} XML error id="601" ref="1234" Your task must have a name /error GT AD ED DN DD SR フィールド 定義 フォーマット、制限 編集 △ ◯ added タスクが追加された日。UNIX時間で表記。 タスクが追加された「時間」は記録されない。常に正午としてカウントされる。 編集 △ ◯ addedby タスクを割り当てたユーザのId (※subscriptionユーザ限定). 編集 ◯ × after この時間以降に更新したタスクを探索 UNIX時間。 編集 △ ◯ attachment 添付アイテムの配列。各アイテムは3つのフィールドを含む。添付アイテムは読み取り専用。アウトラインを参照するidを使えます。リスト(list)、ノート(note)はこのAPIを通して取得可。ファイルは現在読めないが、機能追加準備中。 編集 ○ - - - - × before この時間以前に更新したタスクを探索 UNIX時間。 編集 × ◯ checked Whether the task is completed or not 編集 △ ◯ children このタスクが持つサブタスク数 サブタスク自身や、サブタスクを持たないタスクは0 編集 ◯ comp 未完了、完了の選択。 0 未完のみ、1 完了のみ、無しor-1 両方 編集 × ◯ ◯ completed いつタスクが完了したか 未完了の場合、0.UNIX時間。Toodledoはタスクが完了した「時間」はトラッキングしない。そのため、タスクは正午に完了、として処理される。 編集 △ ◯ ◯ context コンテクストのID番号 コンテクスト割当なしの場合は省略(もしくは0) 編集 △ ◯ ◯ duedate タスクの期限(日) UNIXタイムスタンプ(GMTの正午)タイムスタンプ=1445172465↓日時(Tokyo)=2015/10/18 21 47 45 編集 △ ◯ ◯ duedatemod 期限(日)のタイプを示す整数 0 Due By1 Due On (=)2 Due After ( )3 Optionally (?) 編集 △ ◯ ◯ duetime for when the task is due. UNIX時間。設定しなければ0.duedateが設定されず、duetimeのみが設定されていると、1970年1月1日と判断。タイムゾーンにかかわらず、10amは10amと判断。You can convert this timestamp to a GMT string and display the time component without worrying about timezones. 編集 ◯ duration 編集 ○ fields レスポンスに付けて返してほしいフィールド コンマ区切り。レスポンス向上のため、不用なら省略する。 編集 △ ◯ ◯ folder フォルダのID番号 フォルダ割当なしの場合は0もしくは省略。 編集 △ ◯ ◯ goal goalのID番号 goal割当なしの場合は省略(もしくは0) 編集 △ - ● - - × id タスクID アカウントに対してユニークな番号(違うアカウントに対しては、同一のIDに対して異なるタスクがぶら下がる可能性あり。 編集 △ ◯ length タスク達成までの予想時間(分、整数値) 編集 △ ◯ ◯ location 場所のID番号 割当なしの場合は省略(もしくは0) 編集 △ ◯ meta A text for storing metadata about the task. This is useful for syncing data that cannot otherwise be synced to Toodledo. Because of an implementation detail, using the meta field introduces extra latency to each API call, so you should only use this field when necessary. 1,024バイトまで。タスクごとにユニークなIDを持ち、AppIDに対してprivate。ユーザーもAppIDsも個々に入力した値は見られない。 編集 - ◯ modified for when the task was last modified. UNIX時間。 編集 △ ◯ note ノート 32,000 bytesまで。改行コードは\n 編集 ◯ num 取得するタスク数。複数ページで表示する場合などに使用 デフォルト値、最大値ともに1000 編集 △ × order サブタスクの順番 読み取り専用 編集 △ ◯ parent 親タスクのID番号 デフォルト値はO 編集 △ × previous If the task was repeated from another task, this will contain the id number of the previous version of this task. 編集 △ ◯ ◯ priority 優先順位。整数値。 3 = Top2 = High,1 = Medium,0 = Low,-1 = Negative, 編集 △ ◯ ◯ remind リマインダが送られる、タスクの期限までの時間(分)を表す整数値。 0 リマインダなし値の制限:0, 1, 15, 30, 45, 60, 90, 120, 180, 240, 1440, 2880, 4320, 5760, 7200, 8640, 10080, 20160, 43200)。これ以外は近い値に丸め。無料ユーザーは0か60。 編集 △ ◯ ◯ repeat どのようにタスクを繰り返すかを示す文字列 記録を残すため、リピートするタスクが完了した場合ははコピーされたタスクがリストに加えられ、完了タスクに対して、新しいID番号が付与される。繰り返しを中止するには、これに空文字列を設定。記法は※を参照。 編集 △ ◯ shared that indicates if the task is shared as a joint task (Subscription required for user). A boolean (0 or 1) 。読み取り専用 編集 - × sharedowner The user id of the person who owns the task that is being shared with the current user. If the current user is not the owner, then they cannot make changes to the collaboration settings for this task, although they can make other changes. 読み取り専用 編集 - × sharedwith An array of user ids for people that this task is shared with, other than myself and the owner. Read only. 編集 △ ◯ ◯ star スターの有無 0 スターあり1 スターなし 編集 ◯ start スキップするタスク数。複数ページで表示する場合などに使用 デフォルト値は0 編集 △ ◯ ◯ startdate タスクの開始(日) A GMT unix timestamp 編集 △ ◯ ◯ starttime for when the task starts. UNIX時間。 編集 △ ◯ ◯ status タスクのステータスを表す整数値 0 = None, 1 = Next Action,2 = Active, 3 = Planning,4 = Delegated, 5 = Waiting,6 = Hold, 7 = Postponed,8 = Someday, 9 = Canceled,10 = Reference 編集 × ◯ subtask 編集 △ ◯ ◯ tag タグ 複数の場合はコンマで区切る。64文字まで。 編集 △ ● ◯ - - ◯ title タスクタイトル 文字列。255文字まで。 編集 △ ◯ timer The value in the timer field indicates the number of seconds that have elapsed for the timer not including the current session. 編集 × ☓ timeron (タイマーON時)タイマースタート時間のタイムスタンプ Total Time=timer+(now-timeron). Where "now" is a unix timestamp for the current time. 編集 △ ◯ via A read-only field that indicates how the task was added. 読み取り専用-0 Main website-1 Email Import,-2 Firefox Addon-3 This API,-4 Widgets (Google Gadget, etc)-5 Not used,-6 Mobile Phone-7 iPhone App,-8 Import Tools-9 Twitter 編集
https://w.atwiki.jp/goodgames/pages/909.html
3フレーム遅延問題 2 最近、予想しないものが大反響となる傾向があります。 掲題の件ですが。 残念ながらBF3でもBF4でもこの問題が解消する可能性は極めて低いでしょう。 理由は単純明快です。 Microsoft DevCenter DirectX programming New or updated in Windows 8.1 Preview Windows8.1にて投入されるDirectX11.2にてこの問題を改善するための手段(Direct3D low-latency presentation API)が提供されます。 上記リンク先では件のフレームあたり17ms遅延の問題について何度も触れられています。 (17msは16.666...msを切り上げているので3フレームだと51msではなく50msになります) またサンプルとして例示されている分かり易い名前のAPIIDXGIDevice1 SetMaximumFrameLatencyでは遅延させるフレーム数が指定出来ますが、 このAPIはDirect9Exの時代から存在していました。 何も指定しないと3フレームの遅延になりますが、 1フレーム遅延などを指定するとフレームレートの低下を招きます。 あくまでも理論上の話で実際にどうなのかはケースにより異なりますが。 前述の通り、3フレーム遅延問題への対策はDirectX11.2に盛り込まれるため、 DirectX11.1で改善する計画は存在しないようです。 言うまでも無くBF4はDirectX11.1のAPIにしか対応していないため、 Windows8.1(DirectX11.2)の環境で実行しても、 前述のような対策の恩恵を受けることは出来ません。 ( - )