framebuffer(幀緩沖)。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供江華網(wǎng)站建設(shè)、江華做網(wǎng)站、江華網(wǎng)站設(shè)計、江華網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、江華企業(yè)網(wǎng)站模板建站服務(wù),10年江華做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
幀的最低數(shù)量為24(人肉眼可見)(低于24則感覺到畫面不流暢)。
顯卡與幀的關(guān)系:由cpu調(diào)節(jié)其數(shù)據(jù)傳輸速率來輸出其三基色的配比。
三基色:RGB(紅綠藍(lán))。
在沒有桌面和圖形文件的系統(tǒng)界面,可以通過C語言的編程來實現(xiàn)在黑色背景上畫圖!
用下面的代碼,在需要的地方(有注釋)適當(dāng)修改,就能畫出自己喜歡的圖形!
PS:同樣要編譯運行后才能出效果。
#include stdio.h
#include sys/mman.h
#include fcntl.h
#include linux/fb.h
#include stdlib.h
#define RGB888(r,g,b) ((r 0xff) 16 | (g 0xff) 8 | (b 0xff))
#define RGB565(r,g,b) ((r 0x1f) 11 | (g 0x3f) 5 | (b 0x1f))
int main()
{
int fd = open("/dev/fb0", O_RDWR);
if(fd 0){
perror("open err. \n");
exit(EXIT_FAILURE);
printf("xres: %d\n", info.xres);
printf("yres: %d\n", info.yres);
printf("bits_per_pixel: %d\n", info.bits_per_pixel);
size_t len = info.xres*info.yres*info.bits_per_pixel 3;
unsigned long* addr = NULL;
addr = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);
if(addr == (void*)-1){
perror("mmap err. \n");
用GDI繪圖吧,比較簡單。繪圖的思想是讓x以固定的值在區(qū)間內(nèi)持續(xù)增長,比如x=0.1,0.2,0.3.....,以計算出的y值來確定y坐標(biāo)。用線連接所有的點就行了。MoveTo(),LineTo()函數(shù)你用得著,具體情況請自行查看MSDN。
if(m_PageCount == 1)
{
int canDisplay = 0;
for(int i = 12; i 0; i--)
{
if(canDisplay 12){
BindGridItem(transform.GetChild(canDisplay), m_ItemsList[12 - i]);
transform.GetChild(canDisplay).gameObject.SetActive(true);
}else{
//對超過canDispaly的物體實施隱藏
transform.GetChild(canDisplay).gameObject.SetActive(false);
}
canDisplay += 1;
}