SDL_SetColors

章節:SDL API 參考 (3)
更新:2001年9月11日 星期二 23:01
索引
 

名稱

SDL_SetColors - 為給定的8位平面設置一份顏色分配表。  

摘要

#include "SDL.h"

int SDL_SetColors(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors);  

描述

為給定的8位平面設置一份顏色分配表。

當surface是當前顯示平面時,將以所請求的顏色來更新顯示顏色分配表。若已在SDL_SetVideoMode的標記中設置了SDL_HWPALETTE,則SDL_SetColors總是返回1,並且即使窗口的顏色分配表必須被扭曲或者以仿真的方式運行,調色板也一定會設置成你之所求。

SDL_Color結構體的顏色分量的大小為8位,總共可提供256^3=16777216種顏色。

含有SDL_HWPALETTE標記的調色板化(8位)屏幕平面有兩種調色板,一種是用于映射圖塊傳送至平面或從平面傳送圖塊出去的邏輯調色板,另一種是物理調色板(決定硬件如何將顏色映射至顯示)。SDL_SetColors同時修改兩種調色板(若有),這等價于將flags設置為(SDL_LOGPAL | SDL_PHYSPAL)之後調用SDL_SetPalette。  

返回值

若surface並不是一個調色板化的平面,則此函數什麼也不做,並返回0。若所有顏色都已傳送給SDL_SetColors設置好,則會返回1。若非所有的顏色都正確地按要求設定,則會返回0,並且你應該通過查看平面調色板來確定實際的調色板。  

例子

/* 以灰色調色板創建顯示平面 */
SDL_Surface *screen;
SDL_Color colors[256];
int i;
.
.
.
/* 以顏色信息來填充顏色 */
for(i=0;i<256;i++){
  colors[i].r=i;
  colors[i].g=i;
  colors[i].b=i;
}

/* 創建顯示平面 */
screen=SDL_SetVideoMode(640, 480, 8, SDL_HWPALETTE);
if(!screen){
  printf("不能設置該視頻模式:%s", SDL_GetError());
  exit(-1);
}

/* 設置調色板 */
SDL_SetColors(screen, colors, 0, 256);
.
.
.
.

 

另見

SDL_Color、SDL_Surface、SDL_SetPalette、SDL_SetVideoMode  

譯者補充

參數解析

surface
所要設置的顏色分配表所在的平面。
colors
指向顏色分配表的指針。
firstcolor
顏色分配表的第一種顏色。
ncolors
顏色分配表的顏色總量。

 

譯者

石仔<guoshimin57@gmail.com>  

中文版主頁

http://guoshimin.users.sf.net  

中文版最後更新時間

2010年2月20日


 

索引

名稱
摘要
描述
返回值
例子
另見
譯者補充
譯者
中文版主頁
中文版最後更新時間