TEST_F(FetchResponseDataTest, ToWebServiceWorkerDefaultType)
{
    WebServiceWorkerResponse webResponse;
    FetchResponseData* internalResponse = createInternalResponse();

    internalResponse->populateWebServiceWorkerResponse(webResponse);
    EXPECT_EQ(WebServiceWorkerResponseTypeDefault, webResponse.responseType());
    CheckHeaders(webResponse);
}
TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueRedirectType)
{
    WebServiceWorkerResponse webResponse;
    FetchResponseData* internalResponse = createInternalResponse();
    FetchResponseData* opaqueRedirectResponseData = internalResponse->createOpaqueRedirectFilteredResponse();

    opaqueRedirectResponseData->populateWebServiceWorkerResponse(webResponse);
    EXPECT_EQ(WebServiceWorkerResponseTypeOpaqueRedirect, webResponse.responseType());
    CheckHeaders(webResponse);
}
TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType)
{
    WebServiceWorkerResponse webResponse;
    FetchResponseData* internalResponse = createInternalResponse();
    FetchResponseData* corsResponseData = internalResponse->createCORSFilteredResponse();

    corsResponseData->populateWebServiceWorkerResponse(webResponse);
    EXPECT_EQ(WebServiceWorkerResponseTypeCORS, webResponse.responseType());
    CheckHeaders(webResponse);
}
TEST_F(FetchResponseDataTest, ToWebServiceWorkerBasicType)
{
    WebServiceWorkerResponse webResponse;
    FetchResponseData* internalResponse = createInternalResponse();
    FetchResponseData* basicResponseData = internalResponse->createBasicFilteredResponse();

    basicResponseData->populateWebServiceWorkerResponse(webResponse);
    EXPECT_EQ(WebServiceWorkerResponseTypeBasic, webResponse.responseType());
    CheckHeaders(webResponse);
}
Beispiel #5
0
unsigned int GenTextureBitmap(const char*filename){
	unsigned int tex_number;
	int i,j;
	FILE *fp;
	//各ピクセルの輝度データ
	unsigned char* bitdata;
	//
	unsigned char* color_pallete_r;
	unsigned char* color_pallete_g;
	unsigned char* color_pallete_b;
	unsigned char* color_pallete_v;
	//ビットマップヘッダ
	BitmapHeader header;
	BitmapInfoHeader info;
	//色数
	unsigned int color_bit;
	// ファイルオープン
	if( ( fp = fopen(filename, "rb") )==NULL){
		return NULL;
	}
	//ヘッダ読み込み
	if( !ReadHeader(&header,fp) ){
		fclose(fp);
		return NULL;
	}
	//ヘッダ読み込み
	if( !ReadInfoHeader(&info,fp) ){
		fclose(fp);
		return NULL;
	}
	//ヘッダチェック
	if( !(color_bit = CheckHeaders(&header,&info)) ){
		fclose(fp);
		return NULL;
	}
	//ビットマップファイルサイズチェック
	if( !CheckSize(info.width*info.height) ){
		fclose(fp);
		return NULL;
	}
	//カラービット数で処理を分ける
	if(color_bit==8)goto bit_8;
	else if(color_bit==24)goto bit_24;
	//一応例外処理
	else{
		fclose(fp);
		return NULL;
	}
/////////////////////////////////////////////////////////////////////
// 8bit(256色)ビットマップの処理
bit_8:
	unsigned char pallete_num;
	//カラーパレット読み込み
	//メモリ確保
	color_pallete_r = (unsigned char*)malloc(256*sizeof(unsigned char));
	color_pallete_g = (unsigned char*)malloc(256*sizeof(unsigned char));
	color_pallete_b = (unsigned char*)malloc(256*sizeof(unsigned char));
	color_pallete_v = (unsigned char*)malloc(256*sizeof(unsigned char));
	//パレット読み込み
	for(i=0;i<256;i++){
		fread( (color_pallete_r+i), sizeof(unsigned char),1,fp);
		fread( (color_pallete_g+i), sizeof(unsigned char),1,fp);
		fread( (color_pallete_b+i), sizeof(unsigned char),1,fp);
		fread( (color_pallete_v+i), sizeof(unsigned char),1,fp);
	}
	//ビットデータ読み込み
	bitdata = (unsigned char*)malloc(3*info.width*info.height*sizeof(unsigned char));
	for(j=(info.height-1);j>=0;j--){
		for(i=(info.width-1);i>=0;i--){
			fread( &pallete_num, sizeof(unsigned char),1,fp);
			*(bitdata+3*i+3*j*info.width)  = *(color_pallete_b+pallete_num); 
			*(bitdata+3*i+3*j*info.width+1)= *(color_pallete_g+pallete_num); 
			*(bitdata+3*i+3*j*info.width+2)= *(color_pallete_r+pallete_num); 
		}
	}
	//カラーパレットメモリ開放
	free(color_pallete_r);
	free(color_pallete_g);
	free(color_pallete_b);
	free(color_pallete_v);
	//テクスチャ作成
	glGenTextures(1, &tex_number);
	glBindTexture(GL_TEXTURE_2D, tex_number);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, info.width, 
		info.height, 0, GL_RGB, GL_UNSIGNED_BYTE, bitdata);
	free(bitdata);
	// ファイルクローズ
	fclose(fp);
	return tex_number;
/////////////////////////////////////////////////////////////////////
// 24bit(1677万色)ビットマップの処理
bit_24:
	unsigned char red,green,blue;
	//ビットデータ読み込み
	//メモリ確保
	bitdata = (unsigned char*)malloc(3*info.width*info.height*sizeof(unsigned char));
	//読み込み
	for(j=(info.height-1);j>=0;j--){
		for(i=(info.width-1);i>=0;i--){
			fread( &red, sizeof(unsigned char),1,fp);
			fread( &green, sizeof(unsigned char),1,fp);
			fread( &blue, sizeof(unsigned char),1,fp);
			*(bitdata+3*i+3*j*info.width)  = blue;
			*(bitdata+3*i+3*j*info.width+1)= green; 
			*(bitdata+3*i+3*j*info.width+2)= red;
		}
	}
	//テクスチャ作成
	glGenTextures(1, &tex_number);
	glBindTexture(GL_TEXTURE_2D, tex_number);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, info.width, 
		info.height, 0, GL_RGB, GL_UNSIGNED_BYTE, bitdata);
	//メモリ開放
	free(bitdata);
	// ファイルクローズ
	fclose(fp);
	return tex_number;
}
Beispiel #6
0
///////////////////////////////////////////////////////////////////////////////
//ビットマップファイルからピクセルデータを返す.
unsigned char* ReadBitmap(const char*filename){
	int i,j;
	FILE *fp;
	//各ピクセルの輝度データ
	unsigned char* bitdata;
	//
	unsigned char* color_pallete_r;
	unsigned char* color_pallete_g;
	unsigned char* color_pallete_b;
	unsigned char* color_pallete_v;
	//ビットマップヘッダ
	BitmapHeader header;
	BitmapInfoHeader info;
	//色数
	unsigned int color_bit;
	// ファイルオープン
	if( ( fp = fopen(filename, "rb") )==NULL){
		return NULL;
	}
	//ヘッダ読み込み
	if( !ReadHeader(&header,fp) ){
		fclose(fp);
		return NULL;
	}
	//ヘッダ読み込み
	if( !ReadInfoHeader(&info,fp) ){
		fclose(fp);
		return NULL;
	}
	//ヘッダチェック
	if( !(color_bit = CheckHeaders(&header,&info)) ){
		fclose(fp);
		return NULL;
	}
	//ビットマップファイルサイズチェック
	if( !CheckSize(info.width*info.height) ){
		fclose(fp);
		return NULL;
	}
	//カラービット数で処理を分ける
	if(color_bit==8)goto bit_8;
	if(color_bit==24)goto bit_24;
	else{
		fclose(fp);
		return NULL;
	}
/////////////////////////////////////////////////////////////////////
// 8bit(256色)ビットマップの処理
bit_8:
	unsigned char pallete_num;
	//カラーパレット読み込み
	color_pallete_r = (unsigned char*)malloc(256*sizeof(unsigned char));
	color_pallete_g = (unsigned char*)malloc(256*sizeof(unsigned char));
	color_pallete_b = (unsigned char*)malloc(256*sizeof(unsigned char));
	color_pallete_v = (unsigned char*)malloc(256*sizeof(unsigned char));
	for(i=0;i<256;i++){
		fread( (color_pallete_r+i), sizeof(unsigned char),1,fp);
		fread( (color_pallete_g+i), sizeof(unsigned char),1,fp);
		fread( (color_pallete_b+i), sizeof(unsigned char),1,fp);
		fread( (color_pallete_v+i), sizeof(unsigned char),1,fp);
	}
	//ビットデータ読み込み
	bitdata = (unsigned char*)malloc(3*info.width*info.height*sizeof(unsigned char));
	for(i=0;i<info.width;i++){
		for(j=0;j<info.height;j++){
			fread( &pallete_num, sizeof(unsigned char),1,fp);
			*(bitdata+i+j*info.width)  = *(color_pallete_b+pallete_num); 
			*(bitdata+i+j*info.width+1)= *(color_pallete_g+pallete_num); 
			*(bitdata+i+j*info.width+2)= *(color_pallete_b+pallete_num); 
		}
	}
	//カラーパレットメモリ開放
	free(color_pallete_r);
	free(color_pallete_g);
	free(color_pallete_b);
	free(color_pallete_v);
	free(bitdata);
	// ファイルクローズ
	fclose(fp);
	return NULL;
/////////////////////////////////////////////////////////////////////
// 24bit(1677万色)ビットマップの処理
bit_24:
	unsigned char red,green,blue;
	//ビットデータ読み込み
	bitdata = (unsigned char*)malloc(3*info.width*info.height*sizeof(unsigned char));
	for(i=0;i<info.width;i++){
		for(j=0;j<info.height;j++){
			fread( &red, sizeof(unsigned char),1,fp);
			fread( &green, sizeof(unsigned char),1,fp);
			fread( &blue, sizeof(unsigned char),1,fp);
			*(bitdata+i+j*info.width)  = blue;
			*(bitdata+i+j*info.width+1)= green; 
			*(bitdata+i+j*info.width+2)= red;
		}
	}
	//メモリ開放
	free(bitdata);
	// ファイルクローズ
	fclose(fp);
	return NULL;
}