#ifndef ANGLE_TESTS_TESTUTILS_MULTIVIEWTEST_H_
#define ANGLE_TESTS_TESTUTILS_MULTIVIEWTEST_H_
#include "test_utils/ANGLETest.h"
namespace angle
{
enum ExtensionName
{ … };
GLuint CreateSimplePassthroughProgram(int numViews, ExtensionName multiviewExtension);
void CreateMultiviewBackingTextures(int samples,
int viewWidth,
int height,
int numLayers,
std::vector<GLuint> colorTextures,
GLuint depthTexture,
GLuint depthStencilTexture);
void CreateMultiviewBackingTextures(int samples,
int viewWidth,
int height,
int numLayers,
GLuint colorTexture,
GLuint depthTexture,
GLuint depthStencilTexture);
void AttachMultiviewTextures(GLenum target,
int viewWidth,
int numViews,
int baseViewIndex,
std::vector<GLuint> colorTextures,
GLuint depthTexture,
GLuint depthStencilTexture);
void AttachMultiviewTextures(GLenum target,
int viewWidth,
int numViews,
int baseViewIndex,
GLuint colorTexture,
GLuint depthTexture,
GLuint depthStencilTexture);
struct MultiviewImplementationParams : public PlatformParameters
{ … };
std::ostream &operator<<(std::ostream &os, const MultiviewImplementationParams ¶ms);
MultiviewImplementationParams VertexShaderOpenGL(EGLenum clientType,
GLint majorVersion,
GLint minorVersion,
EGLint profileMask,
ExtensionName multiviewExtension);
MultiviewImplementationParams VertexShaderVulkan(EGLenum clientType,
GLint majorVersion,
GLint minorVersion,
EGLint profileMask,
ExtensionName multiviewExtension);
MultiviewImplementationParams VertexShaderD3D11(EGLenum clientType,
GLint majorVersion,
GLint minorVersion,
EGLint profileMask,
ExtensionName multiviewExtension);
MultiviewImplementationParams GeomShaderD3D11(EGLenum clientType,
GLint majorVersion,
GLint minorVersion,
EGLint profileMask,
ExtensionName multiviewExtension);
class MultiviewTestBase : public ANGLETestBase
{ … };
class MultiviewTest : public MultiviewTestBase,
public ::testing::TestWithParam<MultiviewImplementationParams>
{ … };
}
#endif