原创 [RTMP協議]RTMP塊頭報文

RTMP協議是一個互聯網TCP/IP五層體系結構中應用層的協議。RTMP協議中基本的數據單元稱爲消息(Message)。當RTMP協議在互聯網中傳輸數據的時候,消息會被拆分成更小的單元,稱爲消息塊(Chunk)。 消息頭Messa

原创 [RTMP協議]RTMP設計思想

RTMP傳輸基本流程 發送端 把數據封裝成消息(Message) 把消息分割成消息塊(Chunk, 網絡中實際傳輸的內容) 將分割後的消息塊(Chunk)通過TCP協議發送出去 接收端: 在通過TCP協議收到數據後, 先將

原创 [OpenGL]Shader語言GLSL語言基礎-限定符

存儲限定符 在聲明變量時,應根據需要使用存儲限定符來修飾,類似 C 語言中的說明符。GLSL 中支持的存儲限定符見下表: 限定符 描述 < none: default > 局部可讀寫變量,或者函數的參數 cons

原创 [C++基礎]C++11匿名函數Lambda表達式

#include <iostream> using namespace std; int main() { []() { cout << "hello, world" << endl; }(); auto a

原创 [rtmp協議]常用直播流地址

RTMP、RTSP、HTTP這三個協議都屬於互聯網 TCP/IP 五層體系結構中應用層的協議。理論上這三種都可以用來做視頻直播或點播。但通常來說,直播一般用 RTMP、RTSP。而點播用 HTTP。 播放軟件推薦:VLC 要播放視

原创 [OpenGL]Shader語言GLSL語言基礎-變量

OpenGL ES 的渲染管線包含有一個可編程的頂點階段和一個可編程的片段階段。其餘的階段則有固定的功能,應用程序對其行爲的控制非常有限。每個可編程階段中編譯單元的集合組成了一個着色器。在OpenGL ES 2.0 中,每個着色器

原创 [MQ]什麼是消息隊列?

什麼是消息隊列MQ(Message Queue)? 消息(Message):傳輸的數據。 隊列(Queue):隊列是一種先進先出的數據結構。 消息隊列從字面的含義來看就是一個存放消息的容器。 消息隊列可以簡單理解爲

原创 [Lua]協調coroutine

協同程序與線程差不多,也就是一條執行序列,擁有自己獨立的棧,局部變量和指令指針,同時又與其它協同程序共享全局變量和其它大部分東西。++線程與協同程序的主要區別在於++,一個具有多線程的程序可以同時運行幾個線程,而協同程序卻需要彼此

原创 [設計模式]Strategy策略模式(二)

策略模式定義是:定義算法族,分別封裝起來,讓它們之間可以互相替換,算法的變化獨立於使用算法的客戶。 我們來模擬一種情形來理解這句話。有一羣鴨子,有各種顏色的鴨,他們有的會飛,有的不會飛,飛的姿態也更不相同。此時如果在每隻鴨子裏分別

原创 [cocos2dx]屏幕適配

由於各種智能手機的屏幕大小都不一致,會出現同一張圖片資源在不同的設備分辨率下顯示不一樣的問題。爲避免這樣的情況,需要Cocos引擎能提供多分辨率的支持,也就是說要求實現這樣的效果 — 開發者不需要考慮程序實際運行在什麼分辨率下而只需要制定

原创 [設計模式]設計模式之依賴倒置原則

依賴倒置—依賴注入,控制反轉 如果一個類A的功能實現需要藉助於類B,那麼就稱類B是類A的依賴, 如果在類A的內部去實例化類B,那麼兩者之間會出現較高的耦合, 一旦類B出現了問題,類A也需要進行改造,如果這樣的情況較多, 每個類之間

原创 [C++基礎]虛繼承實現原理

在C++中,我們會遇到virtual這個關鍵字,但是它有兩種含義:虛函數和虛繼承,它們兩個是完全無相關的兩個概念。 什麼是虛繼承   虛繼承是解決C++多重繼承問題的一種手段,從不同途徑繼承來的同一基類,會在子類中存在多份拷貝。這將存在兩

原创 [C++基礎]虛析構函數

虛析構函數是爲了解決這樣的一個問題:基類的指針指向派生類對象,並用基類的指針刪除派生類對象。如果某個類不包含虛函數,那一般是表示它將不作爲一個基類來使用。當一個類不準備作爲基類使用時,使析構函數爲虛一般是個壞主意。因爲它會爲類增加一個虛函

原创 [C++基礎]宏定義中操作符(#,##)的使用

# 和 ## 在宏定義(define)中經常可以看到,是預編譯過程中的常用語句 ##是一個連接符號,用於把參數連在一起 #是“字符串化”的意思。出現在宏定義中的#是把跟在後面的參數轉換成一個字符串 #define CONVERT(nam

原创 [C++基礎]多態虛函數表詳解

C++相對其他面嚮對象語言來說,之所以靈活、高效。很大程度的佔比在於其多態技術和模板技術。C++虛函數表是支撐C++多態的重要技術,它是C++動態綁定技術的核心。 多態對象創建及內存分佈 假設有一個基類ClassA,一個繼承了該基類的派生