SurfaceFlinger와 Hardware Composer그래픽 데이터의 버퍼들을 생성한 것도 훌륭하지만, 이 데이터들을 여러분 기기의 화면에서 보게 된다면 더욱 멋질 것입니다. 그것이 SurfaceFlinger와 Hardware Composer HAL이 관여하는 부분이다.SurfaceFlinger의 역할은 여러 소스로부터 그래픽 데이터 버퍼들을 받고, 그것들을 합성해서 display로 보내는 것이다. 예전에는 이런 작업들은 하드웨어 프레임버퍼 (예를 들면, /dev/graphics/fb0)로 software blitting 하는 것으로 처리했지만, 이런 시기가 지난지 이미 오래됐다.(역자주) 여기서 blitting은 컴퓨터의 그래픽 메모리를 다른 곳으로 복사하는 것을 의미하는 그래픽 용어다.앱이 포그..
IntroSurface, SurfaceHodler, EGLSurface, SurfaceView, GLSurfaceView, SurfaceTexture, TextureView, SurfaceFlinger에 대해 모든 개발자들이 알아야 하는 것 이 문서는 안드로이드의 “시스템 레벨” 그래픽 아키텍처의 필수 요소들과, 그것들 애플리케이션 프레임워크와 멀티미디어 시스템에 의해 어떻게 이용되는지를 설명한다. 만일 여러분이 왜 SurfaceView와 TextureView가 그들 각자의 방식으로 동작하는지, 또는 Surface와 EGLSurface가 어떻게 연동하는지가 궁금하다면 제대로 찾아온 것이다. 이 문서는 여러분이 안드로이드 디바이스와 애플리케이션 개발에 어느 정도 익숙하다고 가정한다. 하지만, 안드로이드 애..
안드로이드 스튜디오 3.0이 출시되었다.기존의 프로젝트들은 잘 동작하는데 새로운 프로젝트를 생성하였다면 새로운 프로젝트는 컴파일이 안되는 현상이 발생한다. Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:26.0.0.Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.test:runner:1.0.1.... 이는 gradle plugin 버전이 3.0으로 높아졌고, gradle wrapper 버전이 4...
추석동안에 3년전에 개발해 두었던 만화/코믹뷰어 앱을 스토어에 출시했다.작년까지만해도 쓸만한 만화뷰어가 없었는데 지금은 쓸만한 앱들이 많이 있다.습작으로 생각하고 여러가지 경험을 해보았다.Glide, 이미지캐쉬, 압축파일 동적풀기, SQLite 등 새로운것도 있지만 그렇지 않은 것들도 있다.가장 많이 고생했던 부분은 빠르게 스크롤되고 있는 RecyclerView에서 Glide 로딩이 따라오지 못해서 이미지가 덮어 씌워지는 부분과 ViewPager에서 동적 이미지 로딩을 하는 부분이었다. https://play.google.com/store/apps/details?id=com.duongame.comicz.free
안드로이드에서 OpenGL ES를 사용하려면 가장 간단하게 GLSurfaceView를 사용하면 된다.GLSurfaceView를 생성하고 GLSurfaceView.Renderer를 구현하면 기본적인 뼈대가 완성 된다.아래의 예제는 화면을 빨간색으로 지우는 단순한 예제이다. package com.duongame.opengl; import android.opengl.GLSurfaceView;import android.support.v7.app.AppCompatActivity;import android.os.Bundle; public class MainActivity extends AppCompatActivity { GLSurfaceView glSurfaceView; @Override protected void..
Android-16에서 변경점: 구버전: 1. RSSurfaceView는 GLSurfaceView와 유사한 동작을 하며 GLRenderer를 set한다. 2. RenderScriptGL이라는 객체를 사용하며, GLSL shader program을 지원한다. 3. 2번과 연동되어 rsg_graphics.rsh를 지원하며 void main()대신에 int main()을 사용한다. 신버전: 1. RSSurfaceView, RenderScriptGL을 사용하지 않는다. 2. 따라서 GLSL을 사용하지 못하고 독자적으로 .rs에서 내장함수를 사용한다. 3. rsg_graphics.rsh를 사용할수 없다. int main()을 RenderScriptGL을 사용하지 않고는 call할 방법이 없다.
#include "rs_matrix.rsh" #pragma version(1) #pragma rs java_package_name(com.example.android.rs.hellocompute) float gFactor;// 0.0f: color, 1.0f: mono float3 m0 = {0.3588f, 0.7044f, 0.1368f}; float3 m1 = {0.2990f, 0.5870f, 0.1140f}; float3 m2 = {0.2392f, 0.4696f, 0.0912f}; void root(const uchar4 *v_in, uchar4 *v_out) { float4 f4 = rsUnpackColor8888(*v_in); float3 out; out.r = dot(f4.rgb, m0); ou..
- Total
- Today
- Yesterday