xref: /haiku/src/tests/kits/opengl/glinfo/InfoView.cpp (revision 546208a53940a26c6379c48a7854ade1a8250fc5)
170c51973SJohn Scipione /*
270c51973SJohn Scipione  * Copyright 2009-2010 Haiku Inc. All rights reserved.
370c51973SJohn Scipione  * Distributed under the terms of the MIT License.
470c51973SJohn Scipione  *
570c51973SJohn Scipione  * Authors:
670c51973SJohn Scipione  *		John Scipione <jscipione@gmail.com>
770c51973SJohn Scipione  *		Alex Wilson <yourpalal2@gmail.com>
870c51973SJohn Scipione  *		Artur Wyszynski <harakash@gmail.com>
970c51973SJohn Scipione  */
1070c51973SJohn Scipione 
1170c51973SJohn Scipione 
1270c51973SJohn Scipione #include "InfoView.h"
1370c51973SJohn Scipione 
1470c51973SJohn Scipione #include <Catalog.h>
1570c51973SJohn Scipione #include <ControlLook.h>
1670c51973SJohn Scipione #include <GL/gl.h>
1770c51973SJohn Scipione #include <GL/glu.h>
1870c51973SJohn Scipione #include <GL/glut.h>
1970c51973SJohn Scipione #include <GridLayoutBuilder.h>
2070c51973SJohn Scipione #include <LayoutBuilder.h>
2170c51973SJohn Scipione #include <Locale.h>
2270c51973SJohn Scipione #include <Message.h>
2370c51973SJohn Scipione #include <String.h>
2470c51973SJohn Scipione #include <StringView.h>
2570c51973SJohn Scipione 
2670c51973SJohn Scipione 
27*546208a5SOliver Tappe #undef B_TRANSLATION_CONTEXT
28*546208a5SOliver Tappe #define B_TRANSLATION_CONTEXT "InfoView"
2970c51973SJohn Scipione 
3070c51973SJohn Scipione 
3170c51973SJohn Scipione const BAlignment kLabelAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_UNSET);
3270c51973SJohn Scipione const BAlignment kValueAlignment(B_ALIGN_RIGHT, B_ALIGN_VERTICAL_UNSET);
3370c51973SJohn Scipione 
3470c51973SJohn Scipione 
3570c51973SJohn Scipione // <bold>Render name</bold>
3670c51973SJohn Scipione // Vendor Name           GL Version
3770c51973SJohn Scipione // GLU version           GLUT API version
3870c51973SJohn Scipione //
3970c51973SJohn Scipione // example:
4070c51973SJohn Scipione // Software rasterizer for X86/MMX/SSE2
4170c51973SJohn Scipione // Mesa Project          2.1 Mesa 8.1-devel (git-2402c0)
4270c51973SJohn Scipione // GLU 1.3               GLUT API 5
4370c51973SJohn Scipione 
4470c51973SJohn Scipione InfoView::InfoView()
4570c51973SJohn Scipione 	:
4670c51973SJohn Scipione 	BGroupView(B_TRANSLATE("Information"), B_HORIZONTAL)
4770c51973SJohn Scipione {
4870c51973SJohn Scipione 	BStringView* rendererView = new BStringView(NULL,
4970c51973SJohn Scipione 		(const char*)glGetString(GL_RENDERER));
5070c51973SJohn Scipione 	rendererView->SetExplicitAlignment(kLabelAlignment);
5170c51973SJohn Scipione 	rendererView->SetFont(be_bold_font);
5270c51973SJohn Scipione 
5370c51973SJohn Scipione 	BStringView* vendorNameView = new BStringView(NULL,
5470c51973SJohn Scipione 		(const char*)glGetString(GL_VENDOR));
5570c51973SJohn Scipione 	vendorNameView->SetExplicitAlignment(kLabelAlignment);
5670c51973SJohn Scipione 
5770c51973SJohn Scipione 	BStringView* glVersionView = new BStringView(NULL,
5870c51973SJohn Scipione 		(const char*)glGetString(GL_VERSION));
5970c51973SJohn Scipione 	glVersionView->SetExplicitAlignment(kLabelAlignment);
6070c51973SJohn Scipione 
6170c51973SJohn Scipione 	BString gluString("GLU ");
6270c51973SJohn Scipione 	gluString << (const char*)gluGetString(GLU_VERSION);
6370c51973SJohn Scipione 	BStringView* gluVersionView = new BStringView(NULL, gluString.String());
6470c51973SJohn Scipione 	gluVersionView->SetExplicitAlignment(kLabelAlignment);
6570c51973SJohn Scipione 
6670c51973SJohn Scipione 	BString glutAPIString("GLUT API ");
6770c51973SJohn Scipione 	glutAPIString << (int32)GLUT_API_VERSION;
6870c51973SJohn Scipione 	BStringView* glutVersionView = new BStringView(NULL,
6970c51973SJohn Scipione 		glutAPIString.String());
7070c51973SJohn Scipione 	glutVersionView->SetExplicitAlignment(kLabelAlignment);
7170c51973SJohn Scipione 
7270c51973SJohn Scipione 	BLayoutBuilder::Group<>(this)
7370c51973SJohn Scipione 		.AddGroup(B_VERTICAL, 0)
7470c51973SJohn Scipione 			.Add(rendererView)
7570c51973SJohn Scipione 			.Add(BGridLayoutBuilder(0, 0)
7670c51973SJohn Scipione 				.Add(vendorNameView, 0, 0)
7770c51973SJohn Scipione 				.Add(glVersionView, 1, 0)
7870c51973SJohn Scipione 				.Add(gluVersionView, 0, 1)
7970c51973SJohn Scipione 				.Add(glutVersionView, 1, 1)
8070c51973SJohn Scipione 			)
8170c51973SJohn Scipione 			.End();
8270c51973SJohn Scipione }
8370c51973SJohn Scipione 
8470c51973SJohn Scipione 
8570c51973SJohn Scipione InfoView::~InfoView()
8670c51973SJohn Scipione {
8770c51973SJohn Scipione }
88