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