原创 一個簡單的線程池(仿java的ScheduledFuture)

需求 最近公司有一個奇葩的需求:讓我把一個java的客戶端插件轉換爲C#版本。 轉換並不難,由於有java客戶端的源碼,基本只要照着“翻譯”即可實現,實際上我是將java代碼複製到C#工程中然後通過改bug的方式實現的。 由於

原创 改進版的線程池(仿java的ScheduledFuture)

需求 上一篇寫了一個線程池http://blog.csdn.net/ylbs110/article/details/51172428 經過仔細查詢javaAPI才發現我前面一個方案並不符合要求:java中的newSingleTh

原创 C# 自定義Json解析工具

需求 需求內容 還是上一篇公司那個java轉C#的需求,其中socket是json格式的。需求中的這個json需要能夠動態增刪json數據中的元素:每條數據的key和value都是動態定義的,解析出來才知道收到哪些key和valu

原创 C++多維數組形參

需求 今天在學習數據結構和算法時遇到一個需要傳遞多維數組形參的問題。問題本身很簡單,向方法傳遞一個二維數組,但是使用的時候爲了能夠讓數組維度值能夠動態可變(比如向同一個方法傳遞3X3矩陣或者4X4矩陣),也還是費了些腦子。 實現

原创 哈弗曼編碼實現文件壓縮和解壓縮

原理 哈弗曼編碼的本質是將文件中出現頻率越高的字符用越短的二進制碼代替從而達到節省空間的目的。爲了達到這個目的,需要構建哈夫曼樹。 哈弗曼樹的構建過程爲: 1. 將源文件所有字符及其出現次數構建哈弗曼節點 2. 將權值最

原创 OpenGL學習筆記4:紋理

原始圖像數據 像素包裝 圖像數據在內存中很少以緊密包裝的形式存在。在許多硬件平臺上,處於性能上的考慮,一幅圖像的每一行都應該從一種特定字節對齊地址開始。絕大多數編譯器會自動把變量和緩衝區放置在一個針對該架構對齊優化的地址上。 例

原创 OpenGL學習筆記1:環境配置和基本流程

雖然遊戲引擎能夠滿足遊戲開發的絕大部分需求,但是如果僅僅會使用引擎而不懂得遊戲引擎的運作原理和圖形處理原理,勢必會淪爲引擎的奴隸。爲了讓自己不僅能夠知其然,還要能知其所以然,決定從OpenGL開始研究圖形學和遊戲引擎開發技術。 前

原创 LearnOpenGL學習筆記8:光照基礎

一、 顏色 當我們把光源的顏色與物體的顏色相乘,所得到的就是這個物體所反射該光源的顏色(也就是我們感知到的顏色)。 二、 光照基礎 光照模型都是基於我們對光的物理特性的理解。其中一個模型被稱爲馮氏光照模型(Phong Ligh

原创 OpenGL學習筆記3:變換,矩陣,更多對象

變換 進行圖形開發,3D圖形數學基礎是必不可少,限於其專業性,OpenGL筆記裏不做詳細贅述。但是對相關術語及其在OpenGL對應的內容還是需要一定的瞭解。 基礎 向量 點乘 兩個(三分量)單位向量之間的點乘運算將得到一個標量(

原创 LearnOpenGL學習筆記4:紋理

一、 紋理 1. 基礎 紋理 紋理是一個2D圖片(甚至也有1D和3D的紋理),它可以用來添加物體的細節。除了圖像以外,紋理也可以被用來儲存大量的數據,這些數據可以發送到着色器上。 紋理座標 紋理座標(Texture

原创 C++版簡單線程池

需求 之前寫過一個C#版本的簡單線程池http://blog.csdn.net/ylbs110/article/details/51224979 由於剛剛學習了C++11新特性中的future,於是想到用它來實現一個線程池。 實

原创 二叉樹的非遞歸插入和遍歷

需求 二叉樹是一種常見的適合使用遞歸進行遍歷的數據結構,但是如同絕大多數遞歸操作,二叉樹的遍歷也可以使用非遞歸的方式來實現,研究二叉樹的非遞歸實現有助於更好的掌握二叉樹的結構和使用方式。 遞歸好是好,只是太無腦。只會用遞歸解自循

原创 LearnOpenGL學習筆記1:創建窗口

學了一段時間的編程指南第8版,發現這工具書一般的書並不適合新手自學,於是上網找到了一套更適合學習的教程:https://learnopengl-cn.github.io/ 從現在開始先把這套教程學完,再回頭看指南。 一、 庫

原创 OpenGL學習筆記2:繪製和混合

繪製 OpenGL幾何圖元 在使用OpenGL在計算機屏幕上進行繪圖時不需要從一個點的繪製開始。我們關心的不是物理屏幕座標和像素,而是視景體中的位置座標,我們將從7個由定義的幾何圖元來開始繪製實心幾何圖形: 圖元 描述

原创 OpenGL學習筆記6:高級紋理知識

矩形紋理 紋理目標爲GL_TEXTURE_RECTANGLE。 首選,矩形紋理不能進行Mip貼圖; 然後,矩形紋理不是標準化的(實際上是對像素尋址) 最後,紋理座標不能重複,並且不支持紋理壓縮 加載矩形紋理 bool Loa