« | トップページ | »

2010.12.23

二次元配列のFloatBuffer生成(ダイレクト)

忘れっぽいのですぐに沢山のことを忘れる。忘れないためには日々続けること。
最近javaのソースを書いた試しがないので、こんな事も思いつくのに時間が掛かる。;_;


OpenGLにて、正二十面体を描画する事になり、今までの流れ通り配列を使うのですが、その配列が二次元配列になっており、FloatBuffer.put(配列)で使えないのです。
困った。ということで、一から配列について学びました。
とりあえず入れることは出来た。

  1. import java.nio.ByteBuffer;
  2. import java.nio.ByteOrder;
  3. import java.nio.FloatBuffer;
  4.  
  5.  
  6. public class bufferTest02 {
  7.  
  8.     static final float fBuffer2[][] = {
  9.         {0.1f, 0.2f, 0.3f}, {0.4f, 0.5f, 0.6f}, {0.7f, 0.8f, 0.9f}, {1.0f, 1.1f, 1.2f}
  10.     };
  11.  
  12.     public static void main(String[] args){
  13.  
  14.         ByteBuffer bb2 = ByteBuffer.allocateDirect(fBuffer2.length * fBuffer2[1].length * 4);
  15.  
  16.         bb2.order(ByteOrder.nativeOrder());
  17.  
  18.         FloatBuffer fb = bb2.asFloatBuffer();
  19.  
  20.         for(int i = 0; i < fBuffer2.length; i++){
  21.             fb.put(fBuffer2[i]);
  22.         }
  23.  
  24.         fb.position(0);
  25.  
  26.         for(int i = 0; i < fBuffer2.length * 3; i ++){
  27.  
  28.             System.out.println("get " + fb.get());
  29.         }
  30.     }
  31. }
  32.  



出力は、

get 0.1
get 0.2
get 0.3
get 0.4
get 0.5
get 0.6
get 0.7
get 0.8
get 0.9
get 1.0
get 1.1
get 1.2


Effective Java 第2版 (The Java Series) Effective Java 第2版 (The Java Series)

価格 : ¥ 3,780(税込み)

Javaプログラミング書籍の定本「Effective Java」の改訂版です。著者のGoogle, Sun Microsystemsにおけるソフトウェア開発で得た知識・経験をまとめた、JavaでプログラミングをするすべてのSE必読の書籍です。2001年の初版以降の追加項目、JavaSE6.0に対応

|

« | トップページ | »

java」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/198455/50381289

この記事へのトラックバック一覧です: 二次元配列のFloatBuffer生成(ダイレクト):

« | トップページ | »