본문 바로가기

android

[ Android Opengl es 2.0 ] LoadTexture 1.0에서는 Texture에 Bitmap 파일만 넣어주면, Android에서 알아서 바꿔주었었다. 아주 간편하게 Texture를 적용 시킬 수가 있었습니다. (안에서 어떻게 돌아가든 관계 없어..) 하지만, 2.0에서는 모든 것을 개발자에게 맡기게 되어있죠. 구글링을 해본 결과 , 안드로이드의 Bitmap 값은 ARGB로 32bit 픽셀로 되어 있다고 합니다. 하지만, Opengl은 RGBA로 되어 있어서 컨버팅 할 필요가 생긴거죠. 그래서 2.0에서는 glTexture2D 의 매개변수가 Buffer로 되어 있는 겁니다. 결과적으로 Texture에 Bitmap을 로드 시킬 때 다음과 같은 코드 형식으로 하면 되겠네요. private static int loadTexture(InputStream is) {.. 더보기
[ Android Opengl es 2.0 ] glDrawArrays 와 glDrawElements 사용법 여러 소스를 보다 보면, glDrawArrays를 사용하거나, glDrawElements를 사용하기도 합니다. 그래서, 저 같은 경우는 이해하기 쉬운 glDrawArrays를 많이 사용했는데요. // Vertex 배열을 만듬. private final float[] mVerticesData = { 0.0f, 0.0f, 0.0f, -0.5f, 0.5f, 0.0f, 0.5f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.5f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.0f.. 더보기
[Android Opengl es 2.0 ] VBO(VertexArray Buffer Object ) 관련해서 이번에 이해하게된 함수는 glGenBuffers, glBindBuffer,glBufferData 이 세 함수입니다. 이 함수에는 다음과 같은 코드로 Vertex 배열을 Opengl Buffer에 저장을 시켜서 Handle Number를 이용하여 사용을 하는데요. // Buffer 생성 공간을 2군데 만든다. GLES20.glGenBuffers(2, vObjId); // Buffer 공간에서 첫번째와 연결 GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, vObjId.get(0)); // 연결된 첫번째 공간에 Static형태로 Vertex데이터를 저장 한다. GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, mVerticesData.length * .. 더보기
[ Android Opengl es 2.0 ] Vertex배열을 이용하여 간단한 도형 만들기 안녕하세요. 이번엔 Vertex배열을 이용하여 제가 그린 그림을 보여드릴려고 합니다. private final float[] mVerticesData = { 0.0f, 0.0f, 0.0f, -0.5f, 0.5f, 0.0f, 0.5f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.5f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.. 더보기
[ Android Opengl es 2.0 ] 기본적인 흐름도. Opengl es 2.0 에 대해 , 우선 제가 공부를 하면서 어느 정도 이해한 부분을 적어보고자 합니다. 정석의 내용이 아니라 제가 생각되는 점으로 적었다는 것을 먼저 알리고 싶습니다. 틀린 점이 있으면 주제 말고 적어주셨으면 합니다. 먼저, Opengl es 2.0을 사용하기 위해서는 가장 크게 3가지로 구분이 되는 것 같더군요. Program : Opengl es 2.0 에서 가장 큰 단위 입니다. 밑에 나오는 VertexShader와 FrameShader가 합쳐져서 위 Program이 되는 거죠. VertexShader : 물체의 모양이나 크기, 위치등 Vertex 배열을 이용해서 작성해주는 Shader입니다. FrameShader : 물체의 색깔, 질감등에 대해 설정을 해주는 Shader입니다... 더보기
[ Android Opengl es ] Blur효과 아직 실험해보지는 않았다. 이것도 역시 Bitmap의 컬러값을 이용하여,변경하는 함수이다. function BlurHorizontal (source, dest, radius) { for (y = 0; y < height; ++y) { for (x = 0; x < width; ++x) { total = 0 for (kx = -radius; kx 더보기
[ Android ] Sockettimeout에 대해... 사용자 위치를 얻어서 현재 날씨정보를 받아오기 위해 소켓 통신을 이용했습니다. (소켓 통신이라기 보다 Http에 연결 시켜서 데이터 값을 가지고 왔지요.) Http로 연결 시키는 방법이 두가지가 있었습니다. try{ String getUrl = "인터넷 주소"; URL url = new URL(getUrl); httpConnection = (HttpURLConnection) url.openConnection(); httpConnection.setConnectTimeout(3000);httpConnection.setReadTimeout(3000); if(httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK){ InputStream in = null;.. 더보기
[ Android ] Offset까지 포함한 전체 사이즈 구하기. 제가 LiveWallpaper를 개발을 많이 해서 화면의 Offset을 자주 이용하는데요. 요새 화면이 너무 제각각이고, 더 짜증나는게 Offset의 사이즈도 제각각이 되어버렸네요;; 전에 핸드폰으로 할 때에는 540을 더해줘서 생각해주면 문제가 없었는데.. 이제는 패드.. 7.5인치 핸드폰 등등... 정말 죽을 맛이죠;; 결국 구글링을 해본 결과!!! Offset까지 포함한 Width와 Height 사이즈를 구하는 방법을 찾았습니다. 한 시간 정도? 찾았나... 역시 간단하게 제공하더라구요. WallpaperManager wm = WallpaperManager.getInstance(mContext); wm.getDesiredMinimumWidth(); 위 함수의 리턴 값이 바로! 저희들이 원하는 값입니.. 더보기