xref: /haiku/src/tests/kits/opengl/glinfo/InfoView.cpp (revision 70c519731857db9d198c02178fa28a315a7ec092)
1*70c51973SJohn Scipione /*
2*70c51973SJohn Scipione  * Copyright 2009-2010 Haiku Inc. All rights reserved.
3*70c51973SJohn Scipione  * Distributed under the terms of the MIT License.
4*70c51973SJohn Scipione  *
5*70c51973SJohn Scipione  * Authors:
6*70c51973SJohn Scipione  *		John Scipione <jscipione@gmail.com>
7*70c51973SJohn Scipione  *		Alex Wilson <yourpalal2@gmail.com>
8*70c51973SJohn Scipione  *		Artur Wyszynski <harakash@gmail.com>
9*70c51973SJohn Scipione  */
10*70c51973SJohn Scipione 
11*70c51973SJohn Scipione 
12*70c51973SJohn Scipione #include "InfoView.h"
13*70c51973SJohn Scipione 
14*70c51973SJohn Scipione #include <Catalog.h>
15*70c51973SJohn Scipione #include <ControlLook.h>
16*70c51973SJohn Scipione #include <GL/gl.h>
17*70c51973SJohn Scipione #include <GL/glu.h>
18*70c51973SJohn Scipione #include <GL/glut.h>
19*70c51973SJohn Scipione #include <GridLayoutBuilder.h>
20*70c51973SJohn Scipione #include <LayoutBuilder.h>
21*70c51973SJohn Scipione #include <Locale.h>
22*70c51973SJohn Scipione #include <Message.h>
23*70c51973SJohn Scipione #include <String.h>
24*70c51973SJohn Scipione #include <StringView.h>
25*70c51973SJohn Scipione 
26*70c51973SJohn Scipione 
27*70c51973SJohn Scipione #undef B_TRANSLATE_CONTEXT
28*70c51973SJohn Scipione #define B_TRANSLATE_CONTEXT "InfoView"
29*70c51973SJohn Scipione 
30*70c51973SJohn Scipione 
31*70c51973SJohn Scipione const BAlignment kLabelAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_UNSET);
32*70c51973SJohn Scipione const BAlignment kValueAlignment(B_ALIGN_RIGHT, B_ALIGN_VERTICAL_UNSET);
33*70c51973SJohn Scipione 
34*70c51973SJohn Scipione 
35*70c51973SJohn Scipione // <bold>Render name</bold>
36*70c51973SJohn Scipione // Vendor Name           GL Version
37*70c51973SJohn Scipione // GLU version           GLUT API version
38*70c51973SJohn Scipione //
39*70c51973SJohn Scipione // example:
40*70c51973SJohn Scipione // Software rasterizer for X86/MMX/SSE2
41*70c51973SJohn Scipione // Mesa Project          2.1 Mesa 8.1-devel (git-2402c0)
42*70c51973SJohn Scipione // GLU 1.3               GLUT API 5
43*70c51973SJohn Scipione 
44*70c51973SJohn Scipione InfoView::InfoView()
45*70c51973SJohn Scipione 	:
46*70c51973SJohn Scipione 	BGroupView(B_TRANSLATE("Information"), B_HORIZONTAL)
47*70c51973SJohn Scipione {
48*70c51973SJohn Scipione 	BStringView* rendererView = new BStringView(NULL,
49*70c51973SJohn Scipione 		(const char*)glGetString(GL_RENDERER));
50*70c51973SJohn Scipione 	rendererView->SetExplicitAlignment(kLabelAlignment);
51*70c51973SJohn Scipione 	rendererView->SetFont(be_bold_font);
52*70c51973SJohn Scipione 
53*70c51973SJohn Scipione 	BStringView* vendorNameView = new BStringView(NULL,
54*70c51973SJohn Scipione 		(const char*)glGetString(GL_VENDOR));
55*70c51973SJohn Scipione 	vendorNameView->SetExplicitAlignment(kLabelAlignment);
56*70c51973SJohn Scipione 
57*70c51973SJohn Scipione 	BStringView* glVersionView = new BStringView(NULL,
58*70c51973SJohn Scipione 		(const char*)glGetString(GL_VERSION));
59*70c51973SJohn Scipione 	glVersionView->SetExplicitAlignment(kLabelAlignment);
60*70c51973SJohn Scipione 
61*70c51973SJohn Scipione 	BString gluString("GLU ");
62*70c51973SJohn Scipione 	gluString << (const char*)gluGetString(GLU_VERSION);
63*70c51973SJohn Scipione 	BStringView* gluVersionView = new BStringView(NULL, gluString.String());
64*70c51973SJohn Scipione 	gluVersionView->SetExplicitAlignment(kLabelAlignment);
65*70c51973SJohn Scipione 
66*70c51973SJohn Scipione 	BString glutAPIString("GLUT API ");
67*70c51973SJohn Scipione 	glutAPIString << (int32)GLUT_API_VERSION;
68*70c51973SJohn Scipione 	BStringView* glutVersionView = new BStringView(NULL,
69*70c51973SJohn Scipione 		glutAPIString.String());
70*70c51973SJohn Scipione 	glutVersionView->SetExplicitAlignment(kLabelAlignment);
71*70c51973SJohn Scipione 
72*70c51973SJohn Scipione 	BLayoutBuilder::Group<>(this)
73*70c51973SJohn Scipione 		.AddGroup(B_VERTICAL, 0)
74*70c51973SJohn Scipione 			.Add(rendererView)
75*70c51973SJohn Scipione 			.Add(BGridLayoutBuilder(0, 0)
76*70c51973SJohn Scipione 				.Add(vendorNameView, 0, 0)
77*70c51973SJohn Scipione 				.Add(glVersionView, 1, 0)
78*70c51973SJohn Scipione 				.Add(gluVersionView, 0, 1)
79*70c51973SJohn Scipione 				.Add(glutVersionView, 1, 1)
80*70c51973SJohn Scipione 			)
81*70c51973SJohn Scipione 			.End();
82*70c51973SJohn Scipione }
83*70c51973SJohn Scipione 
84*70c51973SJohn Scipione 
85*70c51973SJohn Scipione InfoView::~InfoView()
86*70c51973SJohn Scipione {
87*70c51973SJohn Scipione }
88