]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/COGLES2Renderer2D.cpp
Revert "Fix: Listbox was sometimes sending EGET_LISTBOX_SELECTED_AGAIN instead of...
[irrlicht.git] / source / Irrlicht / COGLES2Renderer2D.cpp
1 // Copyright (C) 2014 Patryk Nadrowski\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in Irrlicht.h\r
4 \r
5 #include "COGLES2Renderer2D.h"\r
6 \r
7 #ifdef _IRR_COMPILE_WITH_OGLES2_\r
8 \r
9 #include "IGPUProgrammingServices.h"\r
10 #include "os.h"\r
11 \r
12 #include "COGLES2Driver.h"\r
13 \r
14 #include "COpenGLCoreFeature.h"\r
15 #include "COpenGLCoreTexture.h"\r
16 #include "COpenGLCoreCacheHandler.h"\r
17 \r
18 namespace irr\r
19 {\r
20 namespace video\r
21 {\r
22 \r
23 COGLES2Renderer2D::COGLES2Renderer2D(const c8* vertexShaderProgram, const c8* pixelShaderProgram, COGLES2Driver* driver, bool withTexture) :\r
24         COGLES2MaterialRenderer(driver, 0, EMT_SOLID),\r
25         WithTexture(withTexture)\r
26 {\r
27 #ifdef _DEBUG\r
28         setDebugName("COGLES2Renderer2D");\r
29 #endif\r
30 \r
31         int Temp = 0;\r
32 \r
33         init(Temp, vertexShaderProgram, pixelShaderProgram, false);\r
34 \r
35         COGLES2CacheHandler* cacheHandler = Driver->getCacheHandler();\r
36 \r
37         cacheHandler->setProgram(Program);\r
38 \r
39         // These states don't change later.\r
40 \r
41         ThicknessID = getPixelShaderConstantID("uThickness");\r
42         if ( WithTexture )\r
43         {\r
44                 TextureUsageID = getPixelShaderConstantID("uTextureUsage");\r
45                 s32 TextureUnitID = getPixelShaderConstantID("uTextureUnit");\r
46 \r
47                 s32 TextureUnit = 0;\r
48                 setPixelShaderConstant(TextureUnitID, &TextureUnit, 1);\r
49 \r
50                 s32 TextureUsage = 0;\r
51                 setPixelShaderConstant(TextureUsageID, &TextureUsage, 1);\r
52         }\r
53 \r
54         cacheHandler->setProgram(0);\r
55 }\r
56 \r
57 COGLES2Renderer2D::~COGLES2Renderer2D()\r
58 {\r
59 }\r
60 \r
61 void COGLES2Renderer2D::OnSetMaterial(const video::SMaterial& material,\r
62                                 const video::SMaterial& lastMaterial,\r
63                                 bool resetAllRenderstates,\r
64                                 video::IMaterialRendererServices* services)\r
65 {\r
66         Driver->getCacheHandler()->setProgram(Program);\r
67         Driver->setBasicRenderStates(material, lastMaterial, resetAllRenderstates);\r
68 \r
69         f32 Thickness = (material.Thickness > 0.f) ? material.Thickness : 1.f;\r
70         setPixelShaderConstant(ThicknessID, &Thickness, 1);\r
71 \r
72         if ( WithTexture )\r
73         {\r
74                 s32 TextureUsage = material.TextureLayer[0].Texture ? 1 : 0;\r
75                 setPixelShaderConstant(TextureUsageID, &TextureUsage, 1);\r
76         }\r
77 }\r
78 \r
79 bool COGLES2Renderer2D::OnRender(IMaterialRendererServices* service, E_VERTEX_TYPE vtxtype)\r
80 {\r
81         return true;\r
82 }\r
83 \r
84 }\r
85 }\r
86 \r
87 #endif\r