{"id":156,"date":"2011-11-05T14:51:30","date_gmt":"2011-11-05T14:51:30","guid":{"rendered":"http:\/\/hhs1080.hosting.paran.com\/?p=156"},"modified":"2011-11-05T14:51:30","modified_gmt":"2011-11-05T14:51:30","slug":"bytebuffer-floatbuffer-intbuffer","status":"publish","type":"post","link":"https:\/\/blog.goorigo.com\/?p=156","title":{"rendered":"ByteBuffer, FloatBuffer, IntBuffer"},"content":{"rendered":"<p>ByteBuffer, FloatBuffer, IntBuffer\ub4f1\uc758 \uc790\ubc14\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ubc84\ud37c \ud074\ub798\uc2a4\uac00 \uc788\ub2e4 (\ubaa8\ub450 Buffer\ub85c\ubd80\ud130 \uc0c1\uc18d\ub418\uc5c8\ub2e4)<br \/>\n\uc774 \ud074\ub798\uc2a4\ub4e4\uc740 BLOB\uc758 \uc5ed\ud65c\uc744 \ud55c\ub2e4<\/p>\n<p>\ub0b4\ubd80\uc5d0 \uc624\ud504\uc14b\uc774 \uc788\uc5b4\uc11c \ud30c\uc77c\ucc98\ub7fc \uc77d\uace0 \uc4f8 \uc218 \uc788\ub2e4.<br \/>\ngetInt() \ub4f1\uc758 \uba54\uc18c\ub4dc\ub85c \uc77d\uc73c\uba74 \uc624\ud504\uc14b\uc774 \uc774\ub3d9\ud574\uc11c \ub450\ubc88\uc9f8 \ud638\ucd9c\ud558\ub294 getInt() \ub294<br \/>\n\ud30c\uc77c\uc5d0\uc11c fread\ub97c \ud558\ub294\uac83\ucc98\ub7fc \ub2e4\uc74c \uac12\uc744 \uac00\uc838\ub2e4\uc900\ub2e4.<\/p>\n<p>OpenGL\uc758 \ubc84\ud14d\uc2a4\ubc84\ud37c \uc0dd\uc131 \ucf54\ub4dc\ub97c \ubcf4\ub2e4\ubcf4\uba74<\/p>\n<p>\tmFloatVertexBuffer = ByteBuffer.allocateDirect(FLOAT_SIZE * size * 3)<br \/>\n\t        \t\t\t\t\t\t.order(ByteOrder.nativeOrder()).asFloatBuffer();<\/p>\n<p>\uc2dd\uc73c\ub85c \uad82\uc774 ByteBuffer\ub97c \uc0dd\uc131\ud55c\ud6c4 \uc774\ub97c asFloatBuffer() \ub4f1\uc73c\ub85c \ubcc0\uacbd\ud558\uc5ec FloatBuffer\ub97c \uc0ac\uc6a9\ud558\ub294\ub370<br \/>\n\uc5ec\uae30\uc5d4 \uc774\uc720\uac00 \uc788\ub2e4!<\/p>\n<p>ByteBuffer\ub9cc\uc774 allocateDirect() \uba54\uc18c\ub4dc\ub97c \uac00\uc9c0\uace0 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4.<br \/>\nallocateDirect() \ub85c \ud560\ub2f9\ub41c \uba54\ubaa8\ub9ac\ub294 Java\uc758 GC Heap \uc5d0\uc11c \ubc97\uc5b4\ub09c \uacf3\uc5d0 \ud560\ub2f9\ub420 \uc218 \uc788\uc73c\uba70<br \/>\nJVM\uc740 direct\uba54\ubaa8\ub9ac read\/write\uc2dc \ucd5c\ub300\ud55c native\uc5d0 \uac00\uae4c\uc6b4 \uc18d\ub3c4\ub85c \uc785\ucd9c\ub825\uc744 \ud558\ub3c4\ub85d \ub178\ub825\uc744 \ud558\uac8c \ub41c\ub2e4<br \/>\n\ud558\uc9c0\ub9cc \uadf8\ub9cc\ud07c alloc\/dealloc\uc2dc \uc77c\ubc18\uc801\uc778 \uc790\ubc14 \uba54\ubaa8\ub9ac alloc\/dealloc \ubcf4\ub2e4 \ub354 \ub9ce\uc740 \ube44\uc6a9\uc774 \ub4e4\uae30 \ub54c\ubb38\uc5d0<br \/>\n\ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\ud6c4 \uc624\ub79c \uc2dc\uac04\ub3d9\uc548 \uc720\uc9c0\ub418\ub294 \uba54\ubaa8\ub9ac\uc5d0\ub9cc \uc0ac\uc6a9\ud574\uc57c\uc9c0,<br \/>\nlifetime\uc774 \uc9e7\uc740 \uacf3\uc5d0\ub2e4 \uc4f0\uba74 \uc131\ub2a5\uc5d0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uac8c \ub41c\ub2e4<br \/>\n\ucd94\uac00 &#8211; \ucc3e\uc544\ubd24\ub294\ub370 \uc9c1\uc811 delete\ud558\ub294 \ud568\uc218\ub294 \uc5c6\ub2e4.. \uc5ed\uc2dc \uc790\ubc14\ub77c dealloc\uc740 GC\uc5d0\uc11c\ub9cc \ud558\ub294 \uac83 \uac19\ub2e4 -_-<br \/>\n          delete\ud558\ub4ef \ud3ec\uc778\ud130(?)\ub97c null\uc73c\ub85c\ub9cc \uc124\uc815\ud574 \ub450\uc790.<\/p>\n<p>\uc5ec\uae30\uae4c\uc9c0 \uc54c\uc544\ubcf4\ub2c8 ByteBuffer\ub77c\ub294\uac78 \uc81c\uacf5\ud558\ub294 \uc774\uc720\uac00<br \/>\n\uc131\ub2a5\uc774 \uc911\uc694\ud55c \uacf3\uc5d0\uc11c \uba54\ubaa8\ub9ac\ub97c JAVA GC\uac00 \uad00\ub9ac\ud558\uac8c \ud558\uc9c0 \uc54a\uace0<br \/>\n\uc9c1\uc811 \uc774\ub7f0\uc2dd\uc73c\ub85c \uba54\ubaa8\ub9ac \ud560\ub2f9\uc744 \ud558\uae30 \uc704\ud574\uc11c\ub77c\uace0 \uc790\ub3d9\uc73c\ub85c \uae68\ub2eb\uac8c \ub410\uace0<\/p>\n<p>JAVA\uc5d0\uc11c \ucee4\uc2a4\ud140 \uba54\ubaa8\ub9ac \uad00\ub9ac\uc790\ub97c \ub9cc\ub4e4\ub54c\uc5d0 \ud544\uc218\uc801\uc73c\ub85c \uc368\uc57c\ud558\ub294 \uac83\uc774\ub77c\ub294\uac78 \uc9c1\uac10\ud588\ub530<\/p>\n<p>\uadf8\ub9ac\uace0 allocateDirect()\ud638\ucd9c \ud6c4 order() \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud574\uc11c nativeOrder() \ub77c\ub294\uac83\uc73c\ub85c \uc138\ud305\uc744 \ud574\uc8fc\uace0 \uc788\ub294\ub370<br \/>\nLittle Endian\/Big Endian \uc911 \ud604\uc7ac \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 native order\ub97c \uac00\uc838\uc640\uc11c \ud574\ub2f9 order\ub85c<br \/>\nBuffer\ub97c \ub2e4\ub8e8\ub3c4\ub85d \uc124\uc815\ud574\uc11c \ubc84\ud37c\ub97c \ube68\ub9ac \ub2e4\ub8f0\uc218 \uc788\uac8c \ud558\uace0 \uc788\ub294 \uac83\uc774\ub2e4<\/p>\n<p>\uc6d0\uae00 : http:\/\/cretom.egloos.com\/m\/2823473<br \/>\n\ucc38\uace0<br \/>\nhttp:\/\/download.oracle.com\/javase\/1.4.2\/docs\/api\/java\/nio\/ByteBuffer.html<br \/>\nhttp:\/\/download.oracle.com\/javase\/1.4.2\/docs\/api\/java\/nio\/ByteOrder.html#nativeOrder()<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ByteBuffer, FloatBuffer, IntBuffer\ub4f1\uc758 \uc790\ubc14\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ubc84\ud37c \ud074\ub798\uc2a4\uac00 \uc788\ub2e4 (\ubaa8\ub450 Buffer\ub85c\ubd80\ud130 \uc0c1\uc18d\ub418\uc5c8\ub2e4) \uc774 \ud074\ub798\uc2a4\ub4e4\uc740 BLOB\uc758 \uc5ed\ud65c\uc744 \ud55c\ub2e4 \ub0b4\ubd80\uc5d0 \uc624\ud504\uc14b\uc774 \uc788\uc5b4\uc11c \ud30c\uc77c\ucc98\ub7fc \uc77d\uace0 \uc4f8 \uc218 \uc788\ub2e4. getInt() \ub4f1\uc758 \uba54\uc18c\ub4dc\ub85c \uc77d\uc73c\uba74 \uc624\ud504\uc14b\uc774 \uc774\ub3d9\ud574\uc11c&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/156"}],"collection":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=156"}],"version-history":[{"count":0,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/156\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}