原创 OpenGL ES 3.0(九)實現美顏相機功能

着色器代碼 雖然知道磨皮應該用雙邊濾波算法,但實際上我並不懂具體的代碼編寫過程,因此着色器代碼用的是 GitHub 上找的一個項目:WSLiveDemo ,頂點着色器如下: #version 300 es layout(loca

原创 OpenGL ES 3.0(五)紋理

我們可以爲每個頂點添加顏色來增加圖形的細節,從而創建出有趣的圖像。但是,如果想讓圖形看起來更真實,我們就必須有足夠多的頂點,從而指定足夠多的顏色。這將會產生很多額外開銷,因爲每個模型都會需求更多的頂點,每個頂點又需求一個顏色屬性。

原创 OpenGL ES 3.0(六)緩衝區對象、PBO、FBO

緩衝區對象 創建: Gluint pixBuffObjs[1]; glGenBuffers(1, pixBuffObjs); 綁定: glBindBuffer(GL_PIXEL_PACK_BUFFER, pixBuffObjs[0

原创 OpenGL ES 3.0(八)實現帶水印的相機預覽功能

着色器代碼 這次準備在 Android 上實現一個帶水印的相機預覽功能,因此需要兩個紋理,一個用於相機預覽,一個用於顯示水印,頂點着色器如下: #version 300 es layout(location=0) in vec4

原创 OpenGL ES 3.0(三)EGL 概述

OpenGL ES 定義了一個渲染圖形的規範,但沒有定義窗口系統。爲了讓 GLES 能夠適合各種平臺,GLES 將與知道如何通過操作系統創建和訪問窗口的庫,即 EGL 結合使用。在使用 GLES 進行任何操作之前,必須先創建一個

原创 OpenGL ES 3.0(二)着色器語言

OpenGL ES 着色器語言:OpenGL ES Shading Language,下面簡寫爲 ES SL 或 SL。 着色器版本指定 #version 300 es 如果沒有指定,則默認爲 1.00,這是 OpenGL ES

原创 OpenGL ES 3.0(四)圖元、VBO、VAO

圖元 OpenGL ES 3.0 可供繪製的圖元類型有: 1) Triangles,三角形 2) Lines,線 3) Point sprites,點 三角形 繪製三角形時,可供選擇的繪製方式有:GL

原创 OpenGL ES 3.0(七)圖像處理概述

圖像處理的基本原理 亮度調節 亮度調節有非線性、線性兩種實現方式。非線性亮度調節的實現非常簡單,僞代碼如下: byte* image = loadImage(); byte* r, g, b = interlaceImage(im

原创 OpenGL ES 3.0(一)繪製第一個三角形

OpenGL 概述 繪製三角形之前,需要對 OpenGL 有一個大致的瞭解,因此這裏引用了 learnopengl-cn.github.io 裏的內容: OpenGL 一般被認爲是一個API,然而並不是,OpenGL 僅僅是一個由

原创 爲什麼 bindService 能和 Activity 的生命週期聯動?

前言 之前做一道面試題:startService 和 bindService 有什麼不同?爲什麼 bindService 能和 Activity 的生命週期聯動? 前一個問題可以很快回答出來:生命週期不同,結束方式不同,交互方式不同。

原创 Android 面試題整理總結(一)Java 基礎

目錄 1、final 修飾一個對象,能否調用對象修改屬性的方法? 2、fina l和 static關鍵字的區別? 3、static 修飾的方法可以被子類重寫嗎?爲什麼? 4、final、finally、finalize 分別表示什麼含

原创 從Zygote說到View(一)Zygote的啓動流程及運行機制

前言 計劃寫一個系列文章,從 Zygote 開始,說到 Activity,再到 View 的顯示及事件分發等,意在把 Android 開發中最核心的一些的知識點串成線,看看 Android 是怎麼把它們組織到一起的,希望能寫好。 本文

原创 Android 面試題整理總結(二)Java 集合

目錄 1、Java集合框架中有哪些類?都有什麼特點?區別是什麼? 2、集合、數組、泛型的關係和區別? 3、HashMap 相關: 3.1 解釋一下 HashMap,Java爲什麼要推出 HashMap? 3.2 底層實現了什麼數據結構

原创 Android 面試題整理總結(三)Java 併發

零、目錄 一、併發基礎 1、Java 有哪幾種創建新線程的方法及區別?銷燬一個線程的方法呢? 2、線程的生命週期? 3、Thread 的 join 有什麼作用? 4、sleep 和 wait 的區別? 5、多線程的使用場景?爲什麼要使

原创 Android 面試題整理與總結(零)目錄

前言 打算寫一系列文章,主要是對 Android 面試題的整理與總結,外加個人的解答,水平有限,如果解答出現錯誤或不夠完善,還請批評指出。有一些我答不出來或者覺得答得不夠好的,我也會使用 // TODO註釋標明,並在空閒時修改完善。