1 module PixelPerfectEngine.system.systemUtility;
2 /*
3  * Copyright (C) 2015-2017, by Laszlo Szeremi under the Boost license.
4  *
5  * Pixel Perfect Engine, system.systemUtility module
6  */
7 
8 public immutable dstring engineVer = "0.9.4";	///Defines engine version
9 public immutable dstring sdlVer = "2.0.5";		///Defines SDL version
10 version(X86){
11 	public immutable dstring sysInfo = "x86";	///Defines what CPU architecture the software is being built for.
12 }else version(X86_64){
13 	public immutable dstring sysInfo = "AMD86";
14 }else version(ARM){
15 	public immutable dstring sysInfo = "ARMv8";
16 }else version(AArch64){
17 	public immutable dstring sysInfo = "AArch64";
18 }else{
19 	public immutable dstring sysInfo = "UNDEFINED";	//Contact me or make a pull request if something needs to be added.
20 }
21 version(Windows){
22 	public immutable dstring osInfo = "Windows";	///Defines target OS
23 }else version(linux){
24 	public immutable dstring osInfo = "Linux";
25 }else version(OSX){
26 	public immutable dstring osInfo = "OSX";
27 }else version(Posix){
28 	public immutable dstring osInfo = "Posix";
29 }else{
30 	public immutable dstring osInfo = "UNDEFINED";
31 }
32 version(X86){
33 	version(NO_SSE2){
34 		public immutable dstring renderInfo = "CPUBLiT/MMX";
35 	}else{
36 		public immutable dstring renderInfo = "CPUBLiT/SSE2";	///Renderer information.
37 	}
38 }else version(X86_64){
39 	version(USE_AVX){
40 		public immutable dstring renderInfo = "CPUBLiT/AVX";
41 	}else{
42 		public immutable dstring renderInfo = "CPUBLiT/SSE2";
43 	}
44 }else version(ARM){
45 	version(NEON){
46 		public immutable dstring renderInfo = "CPUBLiT/NEON";
47 	}else{
48 		public immutable dstring renderInfo = "Slow";
49 	}
50 }else version(AArch64){
51 	version(NEON){
52 		public immutable dstring renderInfo = "CPUBLiT/NEON";
53 	}else{
54 		public immutable dstring renderInfo = "Slow";
55 	}
56 }else{
57 	public immutable dstring renderInfo = "Slow";
58 }
59 
60 
61 	import PixelPerfectEngine.concrete.window;
62 	import PixelPerfectEngine.system.file;
63 	import PixelPerfectEngine.extbmp.extbmp;
64 /**
65  * Loads the defaults for Concrete.
66  */
67 public void INIT_CONCRETE(WindowHandler wh){
68 	import PixelPerfectEngine.concrete.window;
69 	import PixelPerfectEngine.system.file;
70 	import PixelPerfectEngine.extbmp.extbmp;
71 	import PixelPerfectEngine.graphics.fontsets;
72 	import PixelPerfectEngine.graphics.bitmap;
73 	import std.stdio;
74 	Fontset!Bitmap8Bit defaultFont = new Fontset!Bitmap8Bit(File("../system/OpenSans-reg-14.fnt"), "../system/");
75 	Fontset!Bitmap8Bit fixedWidthFont = new Fontset!Bitmap8Bit(File("../system/scp-14-reg.fnt"), "../system/");
76 	ExtendibleBitmap ssOrigin = new ExtendibleBitmap("../system/sysdef.xmp");
77 	StyleSheet ss = new StyleSheet();
78 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI0"),"closeButtonA");
79 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI1"),"closeButtonB");
80 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI0"),"checkBoxA");
81 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI1"),"checkBoxB");
82 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI2"),"radioButtonA");
83 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI3"),"radioButtonB");
84 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI4"),"upArrowA");
85 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI5"),"upArrowB");
86 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI6"),"downArrowA");
87 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI7"),"downArrowB");
88 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI8"),"plusA");
89 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUI9"),"plusB");
90 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUIA"),"minusA");
91 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUIB"),"minusB");
92 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUIC"),"leftArrowA");
93 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUID"),"leftArrowB");
94 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUIE"),"rightArrowA");
95 	ss.setImage(loadBitmapFromXMP!Bitmap8Bit(ssOrigin,"GUIF"),"rightArrowB");
96 	ss.addFontset(defaultFont, "OpenSans");
97 	//ss.addFontset(defaultFont, "SourceCodePro");
98 	ss.addFontset(fixedWidthFont, "SourceCodePro");
99 	wh.defaultStyle = ss;
100 	Window.defaultStyle = ss;
101 	WindowElement.styleSheet = ss;
102 	PopUpElement.styleSheet = ss;
103 }