summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2014-11-07 05:42:51 +0000
committerMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-11-10 07:59:17 +0100
commit2269ac65de127d33d41843ae15f6bece5bc778bc (patch)
treee48532866f7f9d0c186ec916fc6fcbae9a6c2531
parent5835fdb77c4cb9e2623ba397b00ee4ec35b9928f (diff)
icontest: remove hand-coded opengl path.
Change-Id: I5e465e1dacfd5d2c3a34fe2f3aefc263bccc14c5
-rw-r--r--vcl/workben/icontest.cxx218
1 files changed, 4 insertions, 214 deletions
diff --git a/vcl/workben/icontest.cxx b/vcl/workben/icontest.cxx
index 543d1c7fad91..39c36865f13c 100644
--- a/vcl/workben/icontest.cxx
+++ b/vcl/workben/icontest.cxx
@@ -81,21 +81,6 @@ public:
virtual void Resize() SAL_OVERRIDE;
};
-class MyOpenGLWorkWindow : public MyWorkWindow
-{
-public:
- bool mbHaveTexture;
- OpenGLWindow *mpOpenGLWindow;
- GLuint mnTextureName;
- float mnTextureAspect;
-
- void LoadTexture();
-
- MyOpenGLWorkWindow( vcl::Window* pParent, WinBits nWinStyle );
-
- virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE;
-};
-
MyWorkWindow::MyWorkWindow( vcl::Window* pParent, WinBits nWinStyle )
: WorkWindow(pParent, nWinStyle)
, mpBitmap(NULL)
@@ -146,165 +131,6 @@ void MyWorkWindow::Paint( const Rectangle& rRect )
Invalidate( INVALIDATE_CHILDREN );
}
-MyOpenGLWorkWindow::MyOpenGLWorkWindow( vcl::Window* pParent, WinBits nWinStyle )
- : MyWorkWindow(pParent, nWinStyle)
- , mnTextureName(0)
- , mnTextureAspect(0)
-{
- mbHaveTexture = false;
- mpOpenGLWindow = new OpenGLWindow( this );
- mpOpenGLWindow->SetSizePixel( Size( WIDTH, HEIGHT ) );
- mpOpenGLWindow->Show();
- mpOpenGLWindow->EnableInput();
-}
-
-void MyOpenGLWorkWindow::LoadTexture()
-{
- mbHaveTexture = true;
-
- glEnable(GL_TEXTURE_2D);
- CHECK_GL_ERROR();
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- CHECK_GL_ERROR();
-
- glGenTextures( 1, &mnTextureName );
- CHECK_GL_ERROR();
-
- glBindTexture(GL_TEXTURE_2D, mnTextureName);
- CHECK_GL_ERROR();
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- CHECK_GL_ERROR();
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- CHECK_GL_ERROR();
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- CHECK_GL_ERROR();
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- CHECK_GL_ERROR();
-
- BitmapEx aBitmap( maGraphic.GetBitmapEx( ) );
- Size aBitmapSize( aBitmap.GetSizePixel() );
-
- GLint maxTexSize;
- glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTexSize);
- CHECK_GL_ERROR();
-
- SAL_INFO("vcl.icontest", "GL_MAX_TEXTURE_SIZE: " << maxTexSize);
-
- if (aBitmapSize.Width() > maxTexSize || aBitmapSize.Height() > maxTexSize)
- {
- Size aNewSize(aBitmapSize);
- if (aNewSize.Width() > maxTexSize)
- {
- aNewSize.setHeight(aNewSize.Height() * (((float) maxTexSize) / aNewSize.Width()));
- aNewSize.setWidth(maxTexSize);
- }
- if (aNewSize.Height() > maxTexSize)
- {
- aNewSize.setWidth(aNewSize.Width() * (((float) maxTexSize) / aNewSize.Height()));
- aNewSize.setHeight(maxTexSize);
- }
- SAL_INFO("vcl.icontest", "Scaling to " << aNewSize);
- aBitmap.Scale(aNewSize, BMP_SCALE_SUPER);
- aBitmapSize = aNewSize;
- }
-
- SAL_INFO("vcl.icontest", "GLEW_ARB_texture_non_power_of_two: " << (GLEW_ARB_texture_non_power_of_two ? "YES" : "NO"));
-
- GLsizei texWidth(aBitmapSize.Width()), texHeight(aBitmapSize.Height());
-
- mnTextureAspect = ((float) aBitmapSize.Width()) / aBitmapSize.Height();
-
- if (!GLEW_ARB_texture_non_power_of_two)
- {
- texWidth = texHeight = std::max(aBitmapSize.Width(), aBitmapSize.Height());
- if (!glm::isPowerOfTwo(texWidth))
- {
- texWidth = glm::powerOfTwoAbove(texWidth);
- texHeight = texWidth;
- }
-
- aBitmap.Expand(texWidth - aBitmapSize.Width(), texHeight - aBitmapSize.Height());
-
- mnTextureAspect = 1;
- }
-
- SAL_INFO("vcl.icontest", "Texture size: " << texWidth << "x" << texHeight);
-
- GLubyte *buffer = new GLubyte[texWidth * texHeight * 4];
- OpenGLHelper::ConvertBitmapExToRGBATextureBuffer( aBitmap, buffer, true );
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
- texWidth, texHeight,
- 0, GL_RGBA, GL_UNSIGNED_BYTE,
- buffer);
- CHECK_GL_ERROR();
-
- delete[] buffer;
-}
-
-void MyOpenGLWorkWindow::Paint( const Rectangle& )
-{
- std::cout << "==> Paint! "<< mnPaintCount++ << " (OpenGL) " << GetSizePixel() << " " << getTimeNow() - mnStartTime << std::endl;
- OpenGLContext& aCtx = mpOpenGLWindow->getContext();
- aCtx.requestLegacyContext();
- CHECK_GL_ERROR();
-
- if (!mbHaveTexture)
- LoadTexture();
-
- aCtx.setWinSize( Size( WIDTH+1, HEIGHT+1 ) );
- CHECK_GL_ERROR();
-
- aCtx.makeCurrent();
- CHECK_GL_ERROR();
-
- glViewport( 0, 0, WIDTH, HEIGHT );
- CHECK_GL_ERROR();
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- CHECK_GL_ERROR();
-
- glBindTexture(GL_TEXTURE_2D, mnTextureName);
- CHECK_GL_ERROR();
-
- glPushMatrix();
- CHECK_GL_ERROR();
-
- glTranslatef(-1, -1, 0);
- glScalef(2, 2, 2);
-
- if (mnTextureAspect >= ((float) WIDTH) / HEIGHT)
- glScalef(1, 1/mnTextureAspect, 1);
- else
- glScalef(1*mnTextureAspect, 1, 1);
- CHECK_GL_ERROR();
-
- glBegin(GL_QUADS);
- glTexCoord2f(0, 0);
- glVertex3f(0, 0, 0);
- glTexCoord2f(0, 1);
- glVertex3f(0, 1 + (0.1*sin(mnPaintCount/50.)), 0);
- glTexCoord2f(1, 1);
- glVertex3f(1 + (0.1*sin(mnPaintCount/60.)), 1 + (0.1*sin(mnPaintCount/50.)), 0);
- glTexCoord2f(1, 0);
- glVertex3f(1 + (0.1*sin(mnPaintCount/60.)), 0, 0);
- glEnd();
- CHECK_GL_ERROR();
-
- glPopMatrix();
- CHECK_GL_ERROR();
-
- aCtx.swapBuffers();
- CHECK_GL_ERROR();
-
- if (mnPaintCount == 100)
- Application::Quit();
-
- Invalidate( INVALIDATE_CHILDREN );
-}
-
void MyWorkWindow::Resize()
{
SAL_INFO("vcl.icontest", "Resize " << GetSizePixel());
@@ -345,18 +171,13 @@ void IconTestApp::Init()
int IconTestApp::Main()
{
- if (GetCommandLineParamCount() != 2 ||
- (GetCommandLineParam(0) != "vcl" &&
- GetCommandLineParam(0) != "opengl"))
+ if (GetCommandLineParamCount() != 1)
{
- fprintf(stderr, "Usage: imagetest [vcl|opengl] image\n");
+ fprintf(stderr, "Usage: imagetest <image>\n");
return EXIT_FAILURE;
}
- OUString sImageFile( GetCommandLineParam( 1 ) );
- if (GetCommandLineParam(0) == "vcl")
- DoItWithVcl( sImageFile );
- else
- DoItWithOpenGL( sImageFile );
+ OUString sImageFile( GetCommandLineParam( 0 ) );
+ DoItWithVcl( sImageFile );
return nRet;
}
@@ -391,37 +212,6 @@ void IconTestApp::DoItWithVcl( const OUString& sImageFile)
}
}
-void IconTestApp::DoItWithOpenGL(const OUString& sImageFile)
-{
- try
- {
- MyOpenGLWorkWindow *pWindow = new MyOpenGLWorkWindow( NULL, WB_APP | WB_STDWORK | WB_SIZEABLE | WB_CLOSEABLE | WB_CLIPCHILDREN );
-
- pWindow->SetText(OUString("OpenGL Image Test"));
-
- pWindow->LoadGraphic( sImageFile );
-
- Size aGraphicSize( pWindow->maGraphic.GetSizePixel() );
- float aspect = ((float) aGraphicSize.Width()) / aGraphicSize.Height();
- SAL_INFO("vcl.icontest", sImageFile << ": size: " << aGraphicSize << " aspect: " << aspect);
-
- pWindow->Hide();
- pWindow->Show();
-
- Execute();
- }
- catch (const uno::Exception &e)
- {
- fprintf(stderr, "fatal error: %s\n", OUStringToOString(e.Message, osl_getThreadTextEncoding()).getStr());
- nRet = EXIT_FAILURE;
- }
- catch (const std::exception &e)
- {
- fprintf(stderr, "fatal error: %s\n", e.what());
- nRet = EXIT_FAILURE;
- }
-}
-
void vclmain::createApplication()
{
static IconTestApp aApp;