約 949,199 件
https://w.atwiki.jp/api_programming/pages/237.html
google cloud を使ってみるただjavascriptで動かすぐらいならここで作る必要はない。 今後、servletやらで動かすことを考えて、ここで動かす。 本音は、昔使っていたから。 test用のボタンを置いて、アラート表示だけの簡易ページ作成 html form, input(button) javascrpit function, alert() jQueryを準備するjQuery corsの壁が超えられないので、javaのservletで、toodledoへのアクセス用のpost処理を作る受け取ったパラメータをそのまま渡す。反対に帰ってきたレスポンスをそのまま返すだけ。 https //www54.atwiki.jp/api_programming/pages/64.html#id_c6d9a5f2 https //www54.atwiki.jp/api_programming/pages/61.html#id_7f0444d5 リダイレクト処理のページを先に作る。Toodledoの認証の流れが下記のため。Toodledoの認証ページへリダイレクトして処理 redirect先でcode受け取り ... リダイレクト処理ページにパラメータ処理(code読み取り)を実装する。 $.ajax(), toodledoのレスポンスが受けられるか、確認する←だめだった。 redirectのページのパラメータを使って、servletからpostするように実装する。 リダイレクト処理ページにcookie登録処理をつける。とりあえず、テストパラメータを設定して、これをcookieに登録 ToodledoAccessToken, ToodledoRefreshTokenとして登録する https //www54.atwiki.jp/api_programming/pages/40.html#id_7599b927 javascript document.cookie toodledo.htmlから、アクセストークンを使って、タスクをただ取ってくる処理を付けるとりあえず、ボタンで呼び出す。 この時点では、JSONも、ただの文字列として表示するだけ。 この時点で、servlet側の処理をいじって、servletに渡すパラメータとhして、"auth"か"get"かで処理を振り分ける処理を追加。 タスクを取ってきたあとに、タスク一つ一つを表示する refresh_tokenを使って、access_tokenを再取得する処理を付けるservlet側の処理の振り分けに auth, get, refresh の三種に変更 java switch文
https://w.atwiki.jp/gametips/pages/32.html
更新日時 2013-06-15 23 05 56 (Sat)アクセス数 - glBindFragDataLocation 目次 概要 エラー サンプルコード 参考文献 概要 void glBindFragDataLocation(GLuint program, GLuint colorNumber, const GLchar *name); シェーダプログラム program におけるユーザ定義の出力変数 name を フラグメントシェーダの色番号 colorNumber にバインドします。 既に name が割り付けられている場合には古い方のバインドが取り消されます。 第 1 引数 program はシェーダプログラムのハンドルです。 第 2 引数 colorNumber はユーザ定義の出力変数に割り当てる色番号です。0 から GL_MAX_DRAW_BUFFERSの範囲で指定します。 第 3 引数 name はユーザ定義の出力変数の名前です。必ず NULL で終了する文字列を指定します。 シェーダプログラムが生成された後であればこの API はいつでも実行することができます。 これにはシェーダオブジェクトをシェーダプログラムに割り当てる前でも良いということです。 ただし、バインドの指定は次に program がリンクされるまで効果がありません。 エラー GL_INVALID_VALUE 第 2 引数 colorNumber が GL_MAX_DRAW_BUFFERS 以上である場合に生成されます。 GL_INVALID_OPERATION 第 1 引数 program がプログラムへのハンドルでない場合に生成されます。 第 3 引数 name が OpenGL によって予約されている接頭語「gl_」から始まる場合に生成されます。 サンプルコード 以下のようなフラグメントシェーダの出力変数に対するマッピングを作成することを想定します。 ///**********************************************//** /// 頂点シェーダから入力された色情報をそのまま出力します。 ///**********************************************//** #version 400 in vec3 color; // 頂点シェーダの出力を補間して生成された色情報 out vec4 fragment_color; // 最終的なフラグメントシェーダの出力色 void main() { fragment_color = vec4(color, 1.0); } この場合、以下のようにしてフラグメントシェーダの出力変数のマッピングを定義できます。 ///**********************************************//** /// 頂点属性を頂点シェーダに渡します。 /// ここではシェーダのコンパイルとリンクは省略されています。 ///**********************************************//** // バッファオブジェクトへのハンドル GLuint position_buffer; GLuint color_buffer; // 頂点配列オブジェクトへのハンドル GLuint vao; // バッファオブジェクトの生成 void CreateBufferObject() { // 三角形ポリゴンの位置と色に対応する頂点属性の定義 float positions[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, 0.5f, 0.0f }; float colors[] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f }; // バッファオブジェクトの生成 GLuint vbo[2]; glGenBuffers(2, vbo); position_buffer = vbo[0]; color_buffer = vbo[1]; // 頂点位置をバッファオブジェクトに転送 glBindBuffer(GL_ARRAY_BUFFER, position_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, positions, GL_STATIC_DRAW); // 頂点色をバッファオブジェクトに転送 glBindBuffer(GL_ARRAY_BUFFER, color_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, colors, GL_STATIC_DRAW); } // 頂点シェーダの入力属性とバッファオブジェクトを対応付ける void BindVertexAttribute() { // 頂点シェーダの vertex_position と vertex_color に属性インデックス 0, 1 をマッピング glBindAttribLocation(program, 0, "vertex_position"); glBindAttribLocation(program, 1, "vertex_color"); // フラグメントシェーダの出力変数をマッピング glBindFragDataLocation(program, 0, "fragment_color"); // 頂点配列オブジェクトを 1 つ作成してバインド glGenVertexArrays(1, vao); glBindVertexArray(vao); // 頂点位置と頂点色のそれぞれについて頂点属性配列を有効化 glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); // バッファオブジェクトに転送した頂点位置をインデックス 0 に関連付ける glBindBuffer(GL_ARRAY_BUFFER, position_buffer); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL); // バッファオブジェクトに転送した頂点色をインデックス 1 に関連付ける glBindBuffer(GL_ARRAY_BUFFER, color_buffer); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL); } // レンダリング void display() { glClear(GL_COLOR_BUFFER_BIT); glBindVertexArray(vao); glDrawArrays(GL_TRIANGLES, 0, 3); glFlush(); } 参考文献 OpenGLに関連するオススメの本や WEB サイトを紹介します. ページ右の画像をクリックすると Amazon で参考文献を購入できます. OpenGL策定委員会, 「OpenGLプログラミングガイド 原著第5版」, ピアソンエデュケーション OpenGLの赤本(Red Book)と呼ばれる定番の参考書の日本語版です。 少し値は張りますがOpenGLの基本的な使い方が丁寧にまとめられています。 初心者の方には敷居が高いかもしれませんがOpenGLを極めるつもりなら必須の教本だと思います。 Mark Segal, Kurt Akeley, Jon Leech, 「OpenGL4.0グラフィックスシステム」, カットシステム OpenGLの仕様書の日本語訳です。個人的には翻訳に違和感を覚えることはありませんでした。 英語が苦手な方は本書をAPIリファレンスの代わりに利用できます。 チュートリアルのような内容は含まれていませんので他の書籍との併用をオススメします。 床井 浩平, 「GLUTによるOpenGL入門」, 工学社 これから OpenGL を初めようとしている方にはこの本がオススメです。 おそらく OpenGL に関する文献の中では最も敷居が低く 3DCG に関する知識が全くなくても理解しやすいです。 少し内容は古いかもしれませんが導入という目的では最高の文献で、私もこの本から OpenGL に入門しました。 床井 浩平, 「GLUTによるOpenGL入門2 テクスチャマッピング」, 工学社 上の「GLUT によるOpenGL入門」の続編です。 前作の内容では物足りなかった方は本書を読むことで 3DCG の表現力が大幅に広がります。 引き続き平易な内容となっており、前作を読破した方であれば難なく理解できると思います。 David Wolff , 「OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング-」, ボーンデジタル 最近のゲームに見られるようなリアルな映像をつくりだすにはプログラマブル・シェーダという機能が欠かせません。 床井 浩平さんの「GLUTによるOpenGL入門2 テクスチャマッピング」でもシェーダに関しては少しだけ触れられていますが、書籍の後半で軽く紹介されているだけでいささか物足りない内容ではありますので、本格的に学ぶためにこの本の購入をオススメします。 OpenGL Reference Pages - glBindFragDataLocation 公式の API リファレンス(英語)です。 質問・コメント欄 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/api_programming/pages/45.html
API Services / API - Remember The Milk method Services / API / Methods - Remember The Milk 認証すでにトークンを取得していれば rtm.auth.checkToken で確認し、 有効でなければ、rtm.auth.getFrob でフロブを取得し、 rtm.auth.getTokenでトークンと交換する タスクリストの取得 タスクの取得 rtm.tasks.getListのレスポンス 日時は ISO8601 - Wikipedia rspstat tasksrev listid taskseries[] 実際のタスクに近い。id created modified name source 作成元 androidとか url location_id rrule tags participants notesnote[ ] id created ノートの作成日。ISO8601 modified ノートの変更日。最初はノートの作成日と同じ日が入っている。ISO8601 title $t task[ ] 繰り返しを設定した際は、ここに[tasks]が複数ぶら下がる。繰り返しでない場合は 1つのみ(この時、[ ] で囲まれないことに注意。)id due 期日 。指定されていなければ ""。 has_due_time 期日が日付指定のみならば "0"、時間まで指定されていれば "1"。 added タスクが追加された日。繰り返しでない、ごく一般的なタスクなら、taskseries の created と同じ日が入る。 completed deleted priority 優先順位。指定されていなければ "N" postponed 延期回数 estimated 予測時間。入力したままが使われている。(分、minが混在することがある。) rtm.tasks.getListのレスポンス rspstat lists[] id name リスト名 deleted locked archived position smart スマートリスト=1、ただのリスト=0 sort_order タスク名順=2、期日順=1、優先度順=0 (filter) フィルタ
https://w.atwiki.jp/api_programming/pages/95.html
下位ページ Content 読み込み時の参考サイト 折りたたみ、表示・非表示の切り替えslideUp(),slideDown()を用いる (jQuery) collapsible(jQuery mobile) visiblity, display none (CSS) 画面のスクロールanimate(...) (jQuery) 読み込み時の参考サイト jQuery日本語リファレンス jQuery入門道場 折りたたみ、表示・非表示の切り替え slideUp(),slideDown()を用いる (jQuery) http //semooh.jp/jquery/api/effects/slideUp/%5Bspeed%5D%2C+%5Bcallback%5D/ collapsible(jQuery mobile) https //api.jquerymobile.com/collapsible/ visiblity, display none (CSS) visibility - MDN display - https //developer.mozilla.org/ja/docs/Web/CSS/display 画面のスクロール animate(...) (jQuery) Javascript/jQuery/表示 http //www.hp-stylelink.com/news/2014/01/20140110.php
https://w.atwiki.jp/gametips/pages/28.html
更新日時 2013-06-15 23 47 18 (Sat)アクセス数 - glEnableVertexAttribArray 目次 概要 エラー サンプルコード 参考文献 概要 void glEnableVertexAttribArray(GLuint index); 属性インデックス index で指定された頂点属性配列 (VAO Vertex Array Object) を有効化します。 この機能を有効にすると glDrawArrays や glDrawElements などのレンダリングで頂点属性配列が利用できるようになります。 この API とは反対に、頂点属性配列を無効化するには glDisableVertexAttribArray を使用します。 シェーダプログラムの入力変数と属性インデックスのマッピングについては glBindAttribLocation を参照してください。 エラー GL_INVALID_VALUE 第 1 引数 index が GL_MAX_VERTEX_ATTRIBS 以上である場合に生成されます。 サンプルコード 以下に、バッファオブジェクトを生成して頂点属性を転送する C++ コードの例を示します。 ///**********************************************//** /// 頂点属性を頂点シェーダに渡します。 /// ここではシェーダのコンパイルとリンクは省略されています。 ///**********************************************//** // バッファオブジェクトへのハンドル GLuint position_buffer; GLuint color_buffer; // 頂点配列オブジェクトへのハンドル GLuint vao; // バッファオブジェクトの生成 void CreateBufferObject() { // 三角形ポリゴンの位置と色に対応する頂点属性の定義 float positions[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, 0.5f, 0.0f }; float colors[] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f }; // バッファオブジェクトの生成 GLuint vbo[2]; glGenBuffers(2, vbo); position_buffer = vbo[0]; color_buffer = vbo[1]; // 頂点位置をバッファオブジェクトに転送 glBindBuffer(GL_ARRAY_BUFFER, position_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, positions, GL_STATIC_DRAW); // 頂点色をバッファオブジェクトに転送 glBindBuffer(GL_ARRAY_BUFFER, color_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, colors, GL_STATIC_DRAW); } // 頂点シェーダの入力属性とバッファオブジェクトを対応付ける void BindVertexAttribute() { // 頂点シェーダの vertex_position と vertex_color に属性インデックス 0, 1 をマッピング glBindAttribLocation(program, 0, "vertex_position"); glBindAttribLocation(program, 1, "vertex_color"); // フラグメントシェーダの出力変数をマッピング glBindFragDataLocation(program, 0, "fragment_color"); // 頂点配列オブジェクトを 1 つ作成してバインド glGenVertexArrays(1, vao); glBindVertexArray(vao); // 頂点位置と頂点色のそれぞれについて頂点属性配列を有効化 glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); // バッファオブジェクトに転送した頂点位置をインデックス 0 に関連付ける glBindBuffer(GL_ARRAY_BUFFER, position_buffer); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL); // バッファオブジェクトに転送した頂点色をインデックス 1 に関連付ける glBindBuffer(GL_ARRAY_BUFFER, color_buffer); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL); } // レンダリング void display() { glClear(GL_COLOR_BUFFER_BIT); glBindVertexArray(vao); glDrawArrays(GL_TRIANGLES, 0, 3); glFlush(); } 参考文献 OpenGLに関連するオススメの本や WEB サイトを紹介します. ページ右の画像をクリックすると Amazon で参考文献を購入できます. OpenGL策定委員会, 「OpenGLプログラミングガイド 原著第5版」, ピアソンエデュケーション OpenGLの赤本(Red Book)と呼ばれる定番の参考書の日本語版です。 少し値は張りますがOpenGLの基本的な使い方が丁寧にまとめられています。 初心者の方には敷居が高いかもしれませんがOpenGLを極めるつもりなら必須の教本だと思います。 Mark Segal, Kurt Akeley, Jon Leech, 「OpenGL4.0グラフィックスシステム」, カットシステム OpenGLの仕様書の日本語訳です。個人的には翻訳に違和感を覚えることはありませんでした。 英語が苦手な方は本書をAPIリファレンスの代わりに利用できます。 チュートリアルのような内容は含まれていませんので他の書籍との併用をオススメします。 床井 浩平, 「GLUTによるOpenGL入門」, 工学社 これから OpenGL を初めようとしている方にはこの本がオススメです。 おそらく OpenGL に関する文献の中では最も敷居が低く 3DCG に関する知識が全くなくても理解しやすいです。 少し内容は古いかもしれませんが導入という目的では最高の文献で、私もこの本から OpenGL に入門しました。 床井 浩平, 「GLUTによるOpenGL入門2 テクスチャマッピング」, 工学社 上の「GLUT によるOpenGL入門」の続編です。 前作の内容では物足りなかった方は本書を読むことで 3DCG の表現力が大幅に広がります。 引き続き平易な内容となっており、前作を読破した方であれば難なく理解できると思います。 David Wolff , 「OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング-」, ボーンデジタル 最近のゲームに見られるようなリアルな映像をつくりだすにはプログラマブル・シェーダという機能が欠かせません。 床井 浩平さんの「GLUTによるOpenGL入門2 テクスチャマッピング」でもシェーダに関しては少しだけ触れられていますが、書籍の後半で軽く紹介されているだけでいささか物足りない内容ではありますので、本格的に学ぶためにこの本の購入をオススメします。 OpenGL Reference Pages - glEnableVertexAttribArray 公式の API リファレンス(英語)です。 質問・コメント欄 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/api_programming/pages/47.html
リスト ul data-role="listview" ul ul or ol に対応 http //api.jquerymobile.com/listview/ リストを後からjavascriptでいじった場合 更新したら $( ul ).refresh() おまけ情報の追加 何かをカウントした数字 span class="ui-li-count" 12 span "ui-li-count"クラスのついた要素で囲む 何かの文字列を追加 span class="ui-li-aside" おまけ span "ui-li-aside"クラスのついた要素で囲む アイコンを追加 img src="~" class="ui-li-icon" / リストの最初の子要素として、イメージを追加し、class="ui-li-icon"を追加すると、アイコンサイズになる。2つ並べたけど、ダメだった。(アイコンサイズにならなかった。) http //api.jquerymobile.com/listview/#option-icon 階層化 1.4で削除された
https://w.atwiki.jp/gametips/pages/20.html
更新日時 2013-06-15 23 06 08 (Sat)アクセス数 - glBufferData 目次 概要 注意 エラー サンプルコード 参考文献 概要 void glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); glBindBuffer で target にバインドされたバッファオブジェクトにデータを転送します。 第 1 引数では以下の定数を指定してバッファオブジェクトの種類を選択します。 定数 バッファオブジェクトの種類 GL_ARRAY_BUFFER 頂点バッファ GL_ELEMENT_ARRAY_BUFFER 頂点インデックス 第 2 引数 size には転送するデータのサイズをバイト数で指定し、 第 3 引数 data には転送するデータの先頭へのポインタを指定します。 第 4 引数 usage では転送されたデータの使い方を指定します。 このパラメータは OpenGL にヒントを与えるもので、適切な指定によってパフォーマンスの向上が期待できます。 usage の指定はアクセス頻度と特性の 2 つのパートに分かれています。 定数 アクセス頻度 STREAM 値の設定は一度だけで、数回程度使用されます。 STATIC 値の設定は一度だけで、非常に多い回数使用されます。 DYNAMIC 値の設定は繰り返し実行され、非常に多い回数使用されます。 定数 特性 DRAW データはアプリケーションによって設定され、OpenGL の描画のソースとして使用します。 READ データは OpenGL 側から読みこんで設定され、アプリケーションのクエリによって取得されます。 COPY データは OpenGL 側から読みこんで設定され、OpenGL の描画のソースとして使用します。 最も頻繁に利用することになるのは STATIC と DRAW の組み合わせで、 この場合には引数 usage に GL_STATIC_DRAW を指定します。 注意 第 3 引数 data に NULL を指定した場合には指定したサイズの未初期化領域が作成されます。 つまり、その領域に格納されている内容は未定義です。 エラー GL_INVALID_ENUM 第 1 引数 target が許可されている値でない場合に生成されます。 第 4 引数 usage が許可されている値でない場合に生成されます。 GL_INVALID_VALUE 第 2 引数 size が負である場合に生成されます。 GL_INVALID_OPERATION target にバインドされているバッファオブジェクトが存在しない場合に生成されます。 GL_OUT_OF_MEMORY 転送に必要なメモリを確保できなかった場合に生成されます。 サンプルコード 以下に、バッファオブジェクトを生成して頂点属性を転送する C++ コードの例を示します。 ///**********************************************//** /// 頂点属性を頂点シェーダに渡します。 /// ここではシェーダのコンパイルとリンクは省略されています。 ///**********************************************//** // バッファオブジェクトへのハンドル GLuint position_buffer; GLuint color_buffer; // 頂点配列オブジェクトへのハンドル GLuint vao; // バッファオブジェクトの生成 void CreateBufferObject() { // 三角形ポリゴンの位置と色に対応する頂点属性の定義 float positions[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, 0.5f, 0.0f }; float colors[] = { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f }; // バッファオブジェクトの生成 GLuint vbo[2]; glGenBuffers(2, vbo); position_buffer = vbo[0]; color_buffer = vbo[1]; // 頂点位置をバッファオブジェクトに転送 glBindBuffer(GL_ARRAY_BUFFER, position_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, positions, GL_STATIC_DRAW); // 頂点色をバッファオブジェクトに転送 glBindBuffer(GL_ARRAY_BUFFER, color_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, colors, GL_STATIC_DRAW); } // 頂点シェーダの入力属性とバッファオブジェクトを対応付ける void BindVertexAttribute() { // 頂点シェーダの vertex_position と vertex_color に属性インデックス 0, 1 をマッピング glBindAttribLocation(program, 0, "vertex_position"); glBindAttribLocation(program, 1, "vertex_color"); // フラグメントシェーダの出力変数をマッピング glBindFragDataLocation(program, 0, "fragment_color"); // 頂点配列オブジェクトを 1 つ作成してバインド glGenVertexArrays(1, vao); glBindVertexArray(vao); // 頂点位置と頂点色のそれぞれについて頂点属性配列を有効化 glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); // バッファオブジェクトに転送した頂点位置をインデックス 0 に関連付ける glBindBuffer(GL_ARRAY_BUFFER, position_buffer); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL); // バッファオブジェクトに転送した頂点色をインデックス 1 に関連付ける glBindBuffer(GL_ARRAY_BUFFER, color_buffer); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL); } // レンダリング void display() { glClear(GL_COLOR_BUFFER_BIT); glBindVertexArray(vao); glDrawArrays(GL_TRIANGLES, 0, 3); glFlush(); } 参考文献 OpenGLに関連するオススメの本や WEB サイトを紹介します. ページ右の画像をクリックすると Amazon で参考文献を購入できます. OpenGL策定委員会, 「OpenGLプログラミングガイド 原著第5版」, ピアソンエデュケーション OpenGLの赤本(Red Book)と呼ばれる定番の参考書の日本語版です。 少し値は張りますがOpenGLの基本的な使い方が丁寧にまとめられています。 初心者の方には敷居が高いかもしれませんがOpenGLを極めるつもりなら必須の教本だと思います。 Mark Segal, Kurt Akeley, Jon Leech, 「OpenGL4.0グラフィックスシステム」, カットシステム OpenGLの仕様書の日本語訳です。個人的には翻訳に違和感を覚えることはありませんでした。 英語が苦手な方は本書をAPIリファレンスの代わりに利用できます。 チュートリアルのような内容は含まれていませんので他の書籍との併用をオススメします。 床井 浩平, 「GLUTによるOpenGL入門」, 工学社 これから OpenGL を初めようとしている方にはこの本がオススメです。 おそらく OpenGL に関する文献の中では最も敷居が低く 3DCG に関する知識が全くなくても理解しやすいです。 少し内容は古いかもしれませんが導入という目的では最高の文献で、私もこの本から OpenGL に入門しました。 床井 浩平, 「GLUTによるOpenGL入門2 テクスチャマッピング」, 工学社 上の「GLUT によるOpenGL入門」の続編です。 前作の内容では物足りなかった方は本書を読むことで 3DCG の表現力が大幅に広がります。 引き続き平易な内容となっており、前作を読破した方であれば難なく理解できると思います。 David Wolff , 「OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング-」, ボーンデジタル 最近のゲームに見られるようなリアルな映像をつくりだすにはプログラマブル・シェーダという機能が欠かせません。 床井 浩平さんの「GLUTによるOpenGL入門2 テクスチャマッピング」でもシェーダに関しては少しだけ触れられていますが、書籍の後半で軽く紹介されているだけでいささか物足りない内容ではありますので、本格的に学ぶためにこの本の購入をオススメします。 OpenGL Reference Pages - glBufferData 公式の API リファレンス(英語)です。 質問・コメント欄 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/nicoapi/pages/43.html
[Vita API, Version 1] video.info 番組情報を得る。 実験放送第2弾などでは、「このデバイスでは再生できない番組です」とエラーになり、情報を取得できなかったので注意 おそらくVitaや3DSで再生できない番組の情報は取得することができないのだろう リクエスト URL GET http //api.ce.nicovideo.jp/liveapi/v1/video.info?__format={format} v={id} format xml または json (デフォルト=無指定は xml) id 番組 ID データ形式 XML または JSON 形式。 データサンプル __format=json v=lv180374957 の場合 { "nicolive_video_response" { "@status" "ok", "video_info" { "community" "", "livetags" { "locked" { "livetag" [ "公式将棋", "将棋", "棋聖戦", "羽生善治", "森内俊之", "村山慈明", "山田久美" ] } }, "video" { "_currentstatus" "onair", "_picture_url" "http //nl.simg.jp/img/a131/392416.207ee8.jpg", "_thumbnail_url" "http //nl.simg.jp/img/a131/392385.af1a83.jpg", "_timeshift_limit" "7", "_ts_archive_end_time" "2014-05-30 00 40 00", "_ts_archive_released_time" "", "_ts_archive_start_time" "", "_ts_is_endless" "0", "_ts_reserved_count" "7233", "_ts_view_limit_num" "0", "_use_tsarchive" "0", "channel_only" "0", "comment_count" "16690", "community_only" "0", "description" "スマートフォンから番組へのメール投稿はコチラから 【告知】7/19(土)~ 電王戦リベンジマッチ 激闘23時間 第85期棋聖戦五番勝負を完全生中継! 羽生善治 棋聖に森内俊之 竜王が挑戦する今期の棋聖戦五番勝負。 大盤解説は午前9時から村山慈明 七段(解説)、山田久美 女流三段(聞き手)でお届けいたします。 なお、タイムシフト視聴ができるのは対局の7日後までとなります。 みなさまのご視聴をお待ちいたしております。 棋聖戦五番勝負第1局第2局第3局第4局第5局羽生善治 棋聖〇○---森内俊之 竜王●●--- 棋聖戦将棋七大公式タイトル戦のひとつ。 持ち時間4時間(切れると1分の秒読み)。 棋士紹介羽生善治 棋聖 プロフィールページ森内俊之 竜王 プロフィールページ 解説・聞き手村山慈明 七段 プロフィールページ山田久美 女流三段 プロフィールページ ◎主催:産経新聞社・日本将棋連盟 ●日本将棋連盟モバイル特設ページはこちら↓↓", "end_time" "2014-07-06 02 00 00", "hidescore_comment" "0", "hidescore_online" "0", "id" "lv180374957", "is_hq" "1", "open_time" "2014-07-05 08 50 00", "provider_type" "official", "related_channel_id" "ch422", "start_time" "2014-07-05 09 00 00", "timeshift_enabled" "1", "title" "将棋 第85期棋聖戦 五番勝負第3局 羽生善治棋聖 vs 森内俊之竜王", "user_id" "394", "view_counter" "36487" } } } } ※ タグが 1 つしかない場合、"livetag" "ゲーム" にようになります。 (__format=xml )v=lv180374957 の場合 ?xml version= 1.0 encoding= utf-8 ? nicolive_video_response status="ok" video_info video id lv180374957 /id title 将棋 第85期棋聖戦 五番勝負第3局 羽生善治棋聖 vs 森内俊之竜王 /title description スマートフォンから番組へのメール投稿はコチラから 【告知】7/19(土)~ 電王戦リベンジマッチ 激闘23時間 第85期棋聖戦五番勝負を完全生中継! 羽生善治 棋聖に森内俊之 竜王が挑戦する今期の棋聖戦五番勝負。 大盤解説は午前9時から村山慈明 七段(解説)、山田久美 女流三段(聞き手)でお届けいたします。 なお、タイムシフト視聴ができるのは対局の7日後までとなります。 みなさまのご視聴をお待ちいたしております。 棋聖戦五番勝負第1局第2局第3局第4局第5局羽生善治 棋聖〇○---森内俊之 竜王●●--- 棋聖戦将棋七大公式タイトル戦のひとつ。 持ち時間4時間(切れると1分の秒読み)。 棋士紹介羽生善治 棋聖 プロフィールページ森内俊之 竜王 プロフィールページ 解説・聞き手村山慈明 七段 プロフィールページ山田久美 女流三段 プロフィールページ ◎主催:産経新聞社・日本将棋連盟 ●日本将棋連盟モバイル特設ページはこちら↓↓ /description user_id 394 /user_id open_time 2014-07-05 08 50 00 /open_time start_time 2014-07-05 09 00 00 /start_time end_time 2014-07-06 02 00 00 /end_time provider_type official /provider_type related_channel_id ch422 /related_channel_id _thumbnail_url http //nl.simg.jp/img/a131/392385.af1a83.jpg _picture_url http //nl.simg.jp/img/a131/392416.207ee8.jpg _currentstatus onair hidescore_online 0 /hidescore_online hidescore_comment 0 /hidescore_comment community_only 0 /community_only channel_only 0 /channel_only view_counter 68467 /view_counter comment_count 30903 /comment_count _timeshift_limit 7 _ts_archive_released_time / _use_tsarchive 0 /_use_tsarchive _ts_archive_start_time / _ts_archive_end_time 2014-05-30 00 40 00 /_ts_archive_end_time _ts_view_limit_num 0 /_ts_view_limit_num _ts_is_endless 0 /_ts_is_endless _ts_reserved_count 7296 /_ts_reserved_count timeshift_enabled 1 /timeshift_enabled is_hq 1 /is_hq /video community / livetags locked livetag 公式将棋 /livetag livetag 将棋 /livetag livetag 棋聖戦 /livetag livetag 羽生善治 /livetag livetag 森内俊之 /livetag livetag 村山慈明 /livetag livetag 山田久美 /livetag /locked /livetags /video_info /nicolive_video_response 更新履歴 2018/7/12 実験放送第2弾について追記 2014/7/5 記述
https://w.atwiki.jp/api_programming/pages/68.html
下位ページ Content 文字コードが変問題点 症状の確認 送られてきている文字列のコードを確認ToodledoのAPIのページを確認 ヘッダとかに何か無いか? 追加確認 送られてきた文字列を、直に打って読ませたらどうなるか? 気付き JSONのデータに分解して、それ以外は特に何もせず表示してみる 文字化けが起きた(文字コードが変2)確認 解決まで Eclipseが立ち上がらない、うまく動作しない問題オプション付きで起動 ロックファイルみたいなもの?を削除 .metadataフォルダを全て消す(というか一時退避) localhostで動かすとエラー JSONデータの吸い出しMap(キーと値)をリストにしてみる。 classの作成 ところで全部のキーを準備する必要があるのか? JSPがうまく動かない症状 結果的に解決 JSONデータの、JSONICでの取り出し(デコード)その2試した方法(失敗) 解決? もう少し調べる。 結局のところ、 Google API のsampleコードをeclipseで動かそうとして、手こずるgradleの設定がうまくできない。(というか環境変数がよくわかっていない)症状 原因 対処 症状2 答え 必要なjarファイルが揃っていない症状 原因 対処 eclipseでライブラリの参照方法がよくわかっていない症状 原因・対処 文字コードが変 問題点 get.phpでタスクを取得すると、日本語が読めない 症状の確認 [{"num" 719,"total" 719},{"id" 111111111,"title" "\u30c6\u30b9\u30c8","modified" 1426716138,"completed" 1416830400,"folder" 0,"priority" 2,"star" 0}, ブラウザ上で、直接URLに打ち込んで、返ってくるのがこんな状態。 送られてきている文字列のコードを確認 ToodledoのAPIのページを確認 文字コードは全てUTF-8との記述 ヘッダとかに何か無いか? https //marubon.info/method-confirm-http-header-2345/ 何もなかった。 追加確認 実際はUTF-16ではないかと疑っていたので、 http //encodemaniax.com/ 確認した文字列では、UTF-8とUTF-16は同じ結果になったので、Toodledoさんを信じる。でも、 http //so-zou.jp/web-app/text/encode-decode/ ここでやると、正しく見えるのはUTF-16のみになるんだよな。 送られてきた文字列を、直に打って読ませたらどうなるか? レスポンスで帰ってきた文字列を直打ちしてみた。(当然 " は \" でエスケープ) String str3 = "{\"id\" 164586863,\"title\" \"\u5203\u5177\u7834\u640d\u306e\u7406\u8ad6\",\"modified\" 1426716138,\"completed\" 1423656000,\"folder\" 0,\"priority\" 0,\"star\" 0}" 結果は、ちゃんと日本語文字列になって出てきた。InputStreamReaderから受けた結果に対して、エスケープシーケンスを認識していないのか? {"id" 164586863,"title" "刃具破損の理論","modified" 1426716138,"completed" 1423656000,"folder" 0,"priority" 0,"star" 0} 気付き よくよく見たら、ダブルクォーテーションはエスケープされなければならないはずなのに、されていない。ということは、JSONデータの中の一つとしてとして読み出せば、認識されるのか? JSONのデータに分解して、それ以外は特に何もせず表示してみる うまく行きました。 文字化けが起きた(文字コードが変2) しばらく何事もなかったのに、Toodledoで新しいタスクを作成する処理を行っているときに、iPhone経由でのタスク登録にて文字化けが発生。(iPhone以外では、日本語のタスクを作成しなかった、とかではないと思うが。。。) 確認 アラートですぐ表示 OK サーバでの受取での表示 OK Toodledo での受取 NG なので、servlet→toodledoの送信でだめ?っぽい。 解決まで どこで文字コードをセットし直すかがよくわからないが、文字コードをセットできる場所としてPrintStream 生成時に UTF-8 を追加 PrintStream(java.io.OutputStream, boolean, java.lang.String) で、正常動作(文字化け回避)になった。 Eclipseが立ち上がらない、うまく動作しない問題 前回、eclipseが立ち上がらず、強制終了。その影響か、eclipseが立ち上がらなくなった。 オプション付きで起動 コマンドプロンプトから、 -clean オプションで起動 → ダメだった。 ロックファイルみたいなもの?を削除 .snapというファイルが、ワークスペースの.metadateフォルダやら、個々のプロジェクトの中にあるが、これを一旦削除して、起動させる。 → 前回より起動時のバーは進んだが、結局ダメだった。 .metadataフォルダを全て消す(というか一時退避) 起動はしたが、プロジェクトなどは全消去。 ファイル→インポートで既存プロジェクトを引っ張る。→フォルダにエラーのマーク クラスにメインが無い、というエラー。jdkのバージョンをjdk1.7に上げたら、コンパイルは出来たがエラーマークは消えず。 プロパティ→プロジェクト・ファセットでバージョンを合わせたら、エラーマークは消えた。 localhostで動かすとエラー テストとしてlocalhostで立ち上げたら、localhostでエラー。 javax.servlet.FilterChain is a restricted class. 他のサイトを見ると、jdk1.7にするとか書いてあるが、さっき上げたばっか。同じ1.7でもバージョンに依る、という話もあったり。しょうがないので、google appengineとかjdkとか全て更新。 google appengineは手動ダウンロードで、別のバージョンと同じ階層に解凍して、と頑張ったが、eclipseで更新を掛けたほうでエラーが収まった。その後、jspファイルにエラーがでたが、ライブラリの指定がjreになっていなので、jdkにかえてひとまず一件落着。 JSONデータの吸い出し ToodledoのGETでデータを取得すると [{"AAA1" "A1","AAA2" "A2"},{"BBB1" "B11","BBB2" "B21"},{"BBB1" "B12","BBB2" "B22"},{"BBB1" "B13","BBB2" "B23"}] というならび。タイプAがひとつのあとに、タイプBが複数個続く。どうやって情報を取るか。とりあえず既に入っているJSONICでトライ。 Map(キーと値)をリストにしてみる。 記法がよくわからず。 classの作成 CCCというクラスを作ってみた。CCCはひとつのAAAとListのBBBをもつ。 →JSONExceptionを吐いて、「うまく渡せません」とエラー。 しょうがないので、AAAとBBBの要素を両方持つクラスをつくって、これを配列とした。 AAAPLUSBBB[] ABarray = JSON.decode(str1, AAAPLUSBBB[].class); http //blog.be-style.jpn.com/article/49348024.html ところで全部のキーを準備する必要があるのか? AAAは実際のところ、使用する予定がほとんどないので、なしにしてみた。特に問題なし。反対に余分なキー(変数)が合っても問題なさそう。 JSPがうまく動かない 症状 ローカル?ではうまく動いていたJSPが、GAEに上げたらうまく動かない 結果的に解決 Java8だとうまく動かないらしい記事を読む。しょうがないのでJava7に落とした。 この際、バージョンダウンしたあと、エラーじるしがつき続けるが、プロジェクト・ファセットというところで、コンパイルバージョン(の情報)がJava8のままになっていた。ここを直して、エラーも消えた。 JSONデータの、JSONICでの取り出し(デコード)その2 { "key1" "String1", "key2" "String2", "key3" [ ["value00","value01"], ["value10","value11"], ["value20","value21"] ] } というデータが来る。たまに { "key1" "String1", "key2" "String2", "key3" "String3" } もある。どのような型を指定して、変換したら良いのか。。。 試した方法(失敗) HashMap String, String map = JSON.decode(response); 実行時に NullPointerException エラー HashMap String, String[][] map = JSON.decode(response); 読み込み時にエラーは出ないが、読み出そうとすると ArrayListを配列にキャストできない というエラーが出る。 解決? HashMap String, ArrayList ArrayList String map = JSON.decode(response); と指定して、 map.get("key3").get(0).get(0) としたら取り出せた。で、 System.out.println( map.get("key1") ) は通るのに、ArrayList ArrayList String にしたよな、と思って map.get("key1").get(0).get(0) にしたら String は ArrayList にキャストできない とでる。どうなっているのか。 もう少し調べる。 JSONICの説明ページを見たら、配列は(指定しない場合やListを指定した場合は)ArrayListに変換する、とある。なので、 ArrayListに変換されている。さらに、そのリストの要素も、同様のルール(ここでは要素の配列もArrayListに)変換される。ので、上記のとりあえずできた方法の結果になったと推測。 key1の"String1" はそのままString型で取り込まれて、map.get("key1") は ArrayList ArrayList String を指定しても、結局 String になっている模様。 ならば、最初からMap String, Object でよかったのでは?と思ってやったら、key3 の取り出し時に、.get(1) が使えなくて困る。 そこで ArrayList ArrayList String a = (ArrayList ArrayList String )map.get("key3"); としてから取り出す。ただし、「キャストしてもいいの?」と警告はでる。 結局のところ、 JSON.decode の説明の読み方を理解していなかった。ということでしょうか。 Google API のsampleコードをeclipseで動かそうとして、手こずる gradleの設定がうまくできない。(というか環境変数がよくわかっていない) 症状 環境変数を設定したけど、「設定されてない」と出る。 原因 ユーザー環境変数とシステム環境変数の使い分けをよくわかっていない。 Gradleの設定のためのパスはユーザー環境変数に登録しないとだめ? 対処 環境変数の設定 症状2 環境変数を変えた後、毎回再起動させなくちゃいかんのか? 答え コマンドプロンプトで作業していたが、コマンドプロンプトを立ち上げ直せばそれでよかった。 必要なjarファイルが揃っていない 症状 eclipseの、google プラグインの Add Google API を使ってsheets API を持ってきたら、足りないクラスがある。 原因 サンプルプログラムをgradleで動かしたときのAPIバージョンと、Add Google API でダウンロードしたAPIバージョンが違う。 対処 サイトからダウンロードした最新版のAPIを使ったら、エラーが消えた。 eclipseでライブラリの参照方法がよくわかっていない 症状 取ってきたライブラリを設定したつもりが、「ライブラリないよ」と言われる。 原因・対処 正直使い分けがわかっていない。ビルドパスの構成で、ライブラリの参照ではなくて、外部jarの参照にしたら反映された。
https://w.atwiki.jp/api_programming/pages/35.html
下位ページ Content scope Javaでクラス リスエストEventのリストを取得する レスポンスCalendar Events Event Google Calendar API scope どっちか https //www.googleapis.com/auth/calendar https //www.googleapis.com/auth/calendar.readonly Javaでクラス https //developers.google.com/resources/api-libraries/documentation/calendar/v3/java/latest/com/google/api/services/calendar/model/package-summary.html リスエスト https //www.googleapis.com/calendar/v3 Eventのリストを取得する GET https // www.googleapis.com/calendar/v3 /calendars/calendarId/events/ レスポンス Calendar CalendarList - Google Developer Events Eventのリストを取得した場合のレスポンス kind "calendar#events", etag etag, summary" string, description" string, updated" datetime, timeZone" string, accessRole" string, defaultReminders [ ] method" string, minutes" integer nextPageToken" string, nextSyncToken" string, items [ ] (下のEvent Resource) Event Events - Google Developer kind "calendar#event", etag" etag, id Eventのid(string, base32hex encoding, ection 3.1.2 in RFC2938, 5~1024文字、カレンダー内でユニーク)。 status" string, htmlLink" string, created" datetime, updated" datetime, summary Eventのタイトルstring, description" string, location" string, colorId" string, creator" {id" string, email" string, displayName" string, self" boolean organizer" {id" string, email" string, displayName" string, self" boolean start 開始日時の情報date 終日イベントの場合の開始日 YYYY-MM-DD dateTime 開始日時(形式 RFC 3339)。timeZone が明示されていなければ、timeZoneのオフセットが必要。 timeZone string end 終了日時の情報date 終日イベントの場合の終了日 YYYY-MM-DD dateTime 開始日時(形式 RFC 3339)。timeZone が明示されていなければ、timeZoneのオフセットが必要。 timeZone (Optional) string endTimeUnspecified" boolean, recurrence" [ string ], recurringEventId" string, originalStartTime" {date" date, dateTime" datetime, timeZone" string transparency" string, visibility" string, iCalUID" string, sequence" integer, attendees [ ] [id" string, email" string, displayName" string, organizer" boolean, self" boolean, resource" boolean, optional" boolean, responseStatus" string, comment" string, additionalGuests" integer attendeesOmitted" boolean, extendedProperties" {private" {(key) string "shared" {(key) string hangoutLink" string, gadget" {type" string, title" string, link" string, iconLink" string, width" integer, height" integer, display" string, preferences" {(key) string anyoneCanAddSelf" boolean, guestsCanInviteOthers" boolean, guestsCanModify" boolean, guestsCanSeeOtherGuests" boolean, privateCopy" boolean, locked" boolean, reminders {useDefault" boolean, overrides [ ] [method" string, minutes" integer source" url" string, title" string