Esempio n. 1
0
bool cGL::ShadersSupported() {
#ifdef EE_GLES
	return ( GLv_ES2 == Version() || GLv_3 == Version() || GLv_3CP == Version() );
#else
	return IsExtension( EEGL_ARB_shader_objects ) && IsExtension( EEGL_ARB_vertex_shader ) && IsExtension( EEGL_ARB_fragment_shader );
#endif
}
Esempio n. 2
0
bool cGL::PointSpriteSupported() {
#ifdef EE_GLES
	return true;
#else
	return IsExtension( EEGL_ARB_point_sprite );
#endif
}
Esempio n. 3
0
int Utils::findExtension(const std::vector<CString>& filter, const CString& strExt)
{
	int index = -1;

	for (int i=1; i < filter.size(); i+=2)
	{
		if (IsExtension(filter[i], strExt))
		{
			index = i;
			break;
		}
	}

	return index;
}
Esempio n. 4
0
CString Utils::getFileName(const std::vector<CString>& filter, int& typeIndex, CString fileName)
{
	const int index = (typeIndex - 1) * 2 + 1;

	const CString strExtension(GetExtension(fileName));
	const int extensionIndex = findExtension(filter, strExtension);

	if (index < filter.size())
	{
		if (extensionIndex == -1)
		{
			setExtension(fileName, GetExtension(filter[index]));
		}
		else if (!IsExtension(filter[index], strExtension))
		{
			typeIndex = extensionIndex / 2 + 1;
		}
	}

	return fileName;
}
Esempio n. 5
0
void cGL::Init() {
	#ifdef EE_GLEW_AVAILABLE
	glewExperimental = 1;

	bool glewOn = ( GLEW_OK == glewInit() );

	if ( glewOn ) {
		WriteExtension( EEGL_ARB_texture_non_power_of_two	, GLEW_ARB_texture_non_power_of_two 				);
		WriteExtension( EEGL_ARB_point_parameters			, GLEW_ARB_point_parameters 						);
		WriteExtension( EEGL_ARB_point_sprite				, GLEW_ARB_point_sprite 							);
		WriteExtension( EEGL_ARB_shading_language_100		, GLEW_ARB_shading_language_100 					);
		WriteExtension( EEGL_ARB_shader_objects				, GLEW_ARB_shader_objects							);
		WriteExtension( EEGL_ARB_vertex_shader				, GLEW_ARB_vertex_shader 							);
		WriteExtension( EEGL_ARB_fragment_shader			, GLEW_ARB_fragment_shader 							);
		WriteExtension( EEGL_EXT_framebuffer_object			, GLEW_EXT_framebuffer_object 						);
		WriteExtension( EEGL_ARB_multitexture				, GLEW_ARB_multitexture 							);
		WriteExtension( EEGL_EXT_texture_compression_s3tc	, GLEW_EXT_texture_compression_s3tc 				);
		WriteExtension( EEGL_ARB_vertex_buffer_object		, GLEW_ARB_vertex_buffer_object						);
		WriteExtension( EEGL_ARB_pixel_buffer_object		, GLEW_ARB_pixel_buffer_object						);
		WriteExtension( EEGL_ARB_vertex_array_object		, GLEW_ARB_vertex_array_object 						);
		WriteExtension( EEGL_EXT_blend_func_separate		, GLEW_EXT_blend_func_separate						);
	}
	else
	#endif
	{
		WriteExtension( EEGL_ARB_texture_non_power_of_two	, IsExtension( "GL_ARB_texture_non_power_of_two" )	);
		WriteExtension( EEGL_ARB_point_parameters			, IsExtension( "GL_ARB_point_parameters" )			);
		WriteExtension( EEGL_ARB_point_sprite				, IsExtension( "GL_ARB_point_sprite" )				);
		WriteExtension( EEGL_ARB_shading_language_100		, IsExtension( "GL_ARB_shading_language_100" )		);
		WriteExtension( EEGL_ARB_shader_objects				, IsExtension( "GL_ARB_shader_objects" )			);
		WriteExtension( EEGL_ARB_vertex_shader				, IsExtension( "GL_ARB_vertex_shader" ) 			);
		WriteExtension( EEGL_ARB_fragment_shader			, IsExtension( "GL_ARB_fragment_shader" ) 			);
		WriteExtension( EEGL_EXT_framebuffer_object			, IsExtension( "GL_EXT_framebuffer_object" ) 		);
		WriteExtension( EEGL_ARB_multitexture				, IsExtension( "GL_ARB_multitexture" )				);
		WriteExtension( EEGL_EXT_texture_compression_s3tc	, IsExtension( "GL_EXT_texture_compression_s3tc" )	);
		WriteExtension( EEGL_ARB_vertex_buffer_object		, IsExtension( "GL_ARB_vertex_buffer_object" )		);
		WriteExtension( EEGL_ARB_pixel_buffer_object		, IsExtension( "GL_ARB_pixel_buffer_object" )		);
		WriteExtension( EEGL_ARB_vertex_array_object		, IsExtension( "GL_ARB_vertex_array_object" )		);
		WriteExtension( EEGL_EXT_blend_func_separate		, IsExtension( "GL_EXT_blend_func_separate" )		);
	}

	// NVIDIA added support for GL_OES_compressed_ETC1_RGB8_texture in desktop GPUs
	// GLEW doesn't return the correct result
	WriteExtension( EEGL_OES_compressed_ETC1_RGB8_texture	, SOIL_GL_ExtensionSupported( "GL_OES_compressed_ETC1_RGB8_texture" )	);

	#ifdef EE_GLES

	WriteExtension( EEGL_ARB_point_parameters				, 1													);
	WriteExtension( EEGL_ARB_point_sprite					, 1													);
	WriteExtension( EEGL_ARB_multitexture					, 1													);

	WriteExtension( EEGL_IMG_texture_compression_pvrtc		, IsExtension( "GL_IMG_texture_compression_pvrtc" )	);

	if ( !IsExtension( EEGL_EXT_texture_compression_s3tc ) ) {
		WriteExtension(	EEGL_EXT_texture_compression_s3tc	, IsExtension( "GL_OES_texture_compression_S3TC" )	);
	}

	if ( !IsExtension( EEGL_EXT_framebuffer_object ) ) {
		WriteExtension(	EEGL_EXT_framebuffer_object			, IsExtension( "GL_OES_framebuffer_object" )		);
	}

	if ( !IsExtension( EEGL_ARB_texture_non_power_of_two ) ) {
		WriteExtension( EEGL_ARB_texture_non_power_of_two	, IsExtension( "GL_IMG_texture_npot" )	||
															  IsExtension( "GL_OES_texture_npot" )	||
															  IsExtension( "GL_APPLE_texture_2D_limited_npot" )	);
	}

	if ( !IsExtension( EEGL_ARB_vertex_array_object ) ) {
		WriteExtension( EEGL_ARB_vertex_array_object		, IsExtension( "GL_OES_vertex_array_object"	)		);
	}

	#endif

	#ifdef EE_GLES2
	WriteExtension( EEGL_EXT_framebuffer_object				, 1													);
	WriteExtension( EEGL_ARB_vertex_buffer_object			, 1													);
	WriteExtension( EEGL_ARB_shader_objects					, 1													);
	WriteExtension( EEGL_ARB_vertex_shader					, 1													);
	WriteExtension( EEGL_ARB_fragment_shader				, 1													);
	#endif

	#if EE_PLATFORM == EE_PLATFORM_EMSCRIPTEN
	if ( !IsExtension( EEGL_EXT_texture_compression_s3tc ) ) {
		WriteExtension(	EEGL_EXT_texture_compression_s3tc	,	IsExtension( "WEBGL_compressed_texture_s3tc" ) ||
																IsExtension( "WEBKIT_WEBGL_compressed_texture_s3tc" ) ||
																IsExtension( "MOZ_WEBGL_compressed_texture_s3tc" ) );
	}
	#endif
}
Esempio n. 6
0
bool Utils::IsExtensionRdf(const CString& strFile)
{
	return IsExtension(strFile, cRdf);
}
Esempio n. 7
0
bool Utils::IsExtensionBdt(const CString& strFile)
{
	return IsExtension(strFile, cBdt);
}
Esempio n. 8
0
bool Utils::IsExtensionHtml(const CString& strFile)
{
	return IsExtension(strFile, cHtml) || IsExtension(strFile, cHtm);
}
Esempio n. 9
0
bool Utils::IsExtensionRenjs(const CString& strFile)
{
	return IsExtension(strFile, cRenjs) || IsExtension(strFile, cRen);
}
Esempio n. 10
0
bool Utils::IsExtensionPos(const CString& strFile)
{
    return IsExtension(strFile, cPos);
}
Esempio n. 11
0
bool Utils::IsExtensionWzq(const CString& strFile)
{
	return IsExtension(strFile, cWzq);
}
Esempio n. 12
0
bool Utils::IsExtensionLib(const CString& strFile)
{
	return IsExtension(strFile, cLib);
}