Followers 0

# OpenGL Non-Microsoft Market Share

## 12 posts in this topic

Hello,

Does anyone have any up-to-date statistics on what percentage of the x86 based desktop PC market is occupied by non-Microsoft operating systems, and thus for which the use of OpenGL would be basically mandatory? Also, do most of you OpenGL programmers compile with GCC and if so, what is your preferred IDE? If you produce work for both Windows and Non-Windows, do you use VC to compile for windows and/or use DirectX for windows, while using OpenGL for the rest, or do you just use the GCC/GL combo for all your work?

-Dave Ottley
0

##### Share on other sites
[quote name='KingofNoobs' timestamp='1354303807' post='5005801']
Does anyone have any up-to-date statistics on what percentage of the x86 based desktop PC market is occupied by non-Microsoft operating systems, and thus for which the use of OpenGL would be basically mandatory?[/quote]
Last month's [url="http://store.steampowered.com/hwsurvey"]Steam Hardware Survey[/url] indicates that 5% of Steam users run Macs. Perhaps this isn't the greatest indicator of overall Mac/Linux marketshare among gamers, but I'd expect that 5% figure to be a reasonable ballpark for the size of the market you are looking at.

[quote]Also, do most of you OpenGL programmers compile with GCC and if so, what is your preferred IDE?[/quote]
I gave up on cross-platform C++ IDEs a long time ago. Visual Studio is the gold standard, and XCode is not bad once you get used to it, but integrating the two together in a single project is a pain - and I seldom find other IDEs to be worth the hassle.

[quote]If you produce work for both Windows and Non-Windows, do you use VC to compile for windows and/or use DirectX for windows, while using OpenGL for the rest, or do you just use the GCC/GL combo for all your work?[/quote]
I have no interest in writing all my code twice. OpenGL works well enough on Windows as well.
0

##### Share on other sites
http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10 has some data about OS market share, which I'd assume would be at least fairly accurate, although with linux, dual booting, etc it's impossible to tell exactly.

I program with openGL, using MSVC on windows and GCC/Eclipse on linux
0

##### Share on other sites
I develop for both Linux and Windows pre-8 and primarily OpenGL, but since I use a non-platform-dependent API for these platform-specific parts, which is then compiled (or linked at run-time using DLL's/SO's) into platform-dependent source using macros, I can easily compile for a new platform, say Direct3D or MacOS, should I wish to do so later on. This is a common way of hiding away platform-dependent source. For reference, L. Spiro has posted a neat little article regarding the compile-time macro solution: http://lspiroengine.com/?p=49.

P.S. I fancy CodeBlocks too much to let VS get in my way on Windows :-)
2

##### Share on other sites
macs have at most 5%, but you can only use OGL 3.x
linux based systems have at most 1%, and latest OGL

For cross platform development you need to use cross platform libraries, and build with non-cross platform IDEs and compilers. For cross platform libraries your best choice IMO would be SFML + OGL + GLEW (and other libs like freetype, freeimage, assimp etc. if needed)
For example I chose cmake to create both a makefile (so yeah gcc/g++) on Linux and a Visual Studio solution on Windows. As far as I know it works for mac too.
On linux your best choice is cmake and kdevelop IMO, but 100 developers will give you 100 answers to this question. You still have other IDEs like Eclipse and Qt Creator.
In my experience OGL has been enough for everything, so I don't see why you'd use DX even on Windows (why would you develop the same thing twice?).
2

##### Share on other sites
People,

Thank you for your responses. I feel that there is merit to using D3D on Windows because the drivers are updated more frequently and the customer service from the graphics card manufacturers is much better. The fact that companies like Blizzard use D3D on Windows and GL on Mac is a form of proof of this concept.

I have decided to download and use Code::Blocks with the latest GCC collection. I do not really want to pay the $500 for MSVC12 unless it is totally necessary. I want to do some emperical research into why MSVC is considered the "Gold Standard." One possibility is that coders are "raised" on Microsoft code from past decades and they just don't want to change the way they do things. For example, most game writing books are written using D3D and very Windows-centric code. The other possibility is that MSVC offers features that increase the productivity of programmers and/or aid in creativity. My hypothesis is that the former is true, but I am going to download and use GCC on Windows now to prove that. Another thing I am going to do is setup my rig to dual boot into Linux and learn Linux as well as I can. I believe that Windows 8 is the beginning of a long-term migration of non-Mac x86 users to the "free" space. I don't think it will happen fast, but I actually believe that the game development community itself (namely indies, but larger companies eventually) will be the catalyst for the change. If Windows becomes a closed system like it is rumored to become, then there will be no more bastion of censorship-free and middleman free game development platforms (other than web, but there are many limitations on web-games). Thus, game developers will move to Linux to gain the freedom (financial and otherwise) offered by the platform, and some gamer will want to play a Linux only game and move over, and then another, and then another. Unless I am mistaken, there is no reason at all why Windows should be the dominant platform other than network effect and historical reasons. To me, this is not enough of a reason to choose the platform for development. If Linux had a 50% share think of how much better of a world we would be living in. Microsoft would be forced to be more standards compliant and all cross-platform development would be made easier, not to mention the better coding practices that this diversification would encourage. I believe that the Linux community, while small, could be the best place for Indie developers to focus now because of the exponential growth that it is poised to experience. When it blows up, the big guys will be there very quickly, so there are benefits to be had of getting into the space now. Just my two cents. -Dave Ottley 0 #### Share this post ##### Link to post ##### Share on other sites It's true that once I developed games under MS platform, and I have a DirectX programming experience of 3 years. But I will further look into the mystery of CG, I give up MS and D3D, and move into Linux. Now I use Ubuntu and QtCreator as my developing environment, recently I am learning[i] OpenGL Super Bible[/i], the sample code works fine. 0 #### Share this post ##### Link to post ##### Share on other sites [quote name='KingofNoobs' timestamp='1354351362' post='5005975'] If Linux had a 50% share think of how much better of a world we would be living in. Microsoft would be forced to be more standards compliant and all cross-platform development would be made easier, not to mention the better coding practices that this diversification would encourage. [/quote] I think that's a very optimistic and unrealistic viewpoint. Split shares of a market has shown us time and time again in the technology field that not only do standards-compliant products not become more the norm, they tend to become less the norm as the competitors independently develop and implement a 'standard' to get a leg up on the other guys who are waiting for a committee to approve and tweak things just right. Internet Explorer vs. Netscape Navigator/Communicator. Horrible divergent html paths that have yet to be resolved 15 years later. iOS vs. Android. Virtually no interoperability between the two dominant mobile platforms.. 3rd party options that will individually compile to each is about as close to bridging that gap as exists. Maybe HTML 5 will grow into being closer to a true cross platform solution. Not so 50/50 examples: OSX vs. Windows. MySpace vs. FaceBook then FaceBook vs. Google + MS Office vs. Lotus Notes Java vs. C# Verizon Wireless vs. AT&T (cmda vs. gsm) (hey, you got one here, they're both headed to LTE as the 4G solution) Hotmail vs. GMail Mercurial vs. Git So while I definitely don't agree that more standards would be drawn up and agreed to, I definitely do want Linux to continue to grow and thrive. I think having competition where people/companies are taking different approaches at the same problem is a great free-market style approach that leaves us with options and with better products as a result. One little story on that note is I recall how confused and then annoyed I was with GMail tagging instead of using folders. And now when I attempt to clean up my Hotmail account, I feel like I have so much less control having to choose 1 folder to put stuff in rather than being able to apply multiple tags and then view any tag that I care to. Tags > Folders all the way. 0 #### Share this post ##### Link to post ##### Share on other sites [quote name='KingofNoobs' timestamp='1354351362' post='5005975'] I have decided to download and use Code::Blocks with the latest GCC collection. I do not really want to pay the$500 for MSVC12 unless it is totally necessary. I want to do some emperical research into why MSVC is considered the "Gold Standard." One possibility is that coders are "raised" on Microsoft code from past decades and they just don't want to change the way they do things. For example, most game writing books are written using D3D and very Windows-centric code. The other possibility is that MSVC offers features that increase the productivity of programmers and/or aid in creativity. My hypothesis is that the former is true, but I am going to download and use GCC on Windows now to prove that.
[/quote]

It's actually the case that the latter of your two possibilities is true; MSVC - while admittedly lagging behind in standards compliance (it's getting better though) - is ahead on productivity and is widely considered to have the best debugger currently available on the planet. The entry level is very accessible too - Express editions will cost you absolutely nothing and are quite well-featured.
0

##### Share on other sites
[quote name='KingofNoobs' timestamp='1354351362' post='5005975']
0

##### Share on other sites
[quote name='KingofNoobs' timestamp='1354561706' post='5006721']
In order to develop "desktop" apps I have to stick to 2010 and that is unlikely to receive updates for C++11 which I love so much.
[/quote]

This is not the case. MS originally planned to only support the development of store applications with the VS2012 express editions, but they came back on this decision after getting quite a few negative reactions.

Visual Studio is just a proven and stable IDE with a lot of great features, so why not use it when you can get it for free?
2

##### Share on other sites
Radikalizm, wow! I was unaware of this! Thank you I think you just saved my day. Now I can continue to develop on both platforms.
0

## Create an account

Register a new account

Followers 0

• ### Similar Content

• I googled around but are unable to find source code or details of implementation.
What keywords should I search for this topic?
Things I would like to know:
A. How to ensure that partially covered pixels are rasterized?
Apparently by expanding each triangle by 1 pixel or so, rasterization problem is almost solved.
But it will result in an unindexable triangle list without tons of overlaps. Will it incur a large performance penalty?
How to ensure proper synchronizations in GLSL?
GLSL seems to only allow int32 atomics on image.
C. Is there some simple ways to estimate coverage on-the-fly?
In case I am to draw 2D shapes onto an exisitng target:
1. A multi-pass whatever-buffer seems overkill.
2. Multisampling could cost a lot memory though all I need is better coverage.
Besides, I have to blit twice, if draw target is not multisampled.

• By mapra99
Hello

I am working on a recent project and I have been learning how to code in C# using OpenGL libraries for some graphics. I have achieved some quite interesting things using TAO Framework writing in Console Applications, creating a GLUT Window. But my problem now is that I need to incorporate the Graphics in a Windows Form so I can relate the objects that I render with some .NET Controls.

To deal with this problem, I have seen in some forums that it's better to use OpenTK instead of TAO Framework, so I can use the glControl that OpenTK libraries offer. However, I haven't found complete articles, tutorials or source codes that help using the glControl or that may insert me into de OpenTK functions. Would somebody please share in this forum some links or files where I can find good documentation about this topic? Or may I use another library different of OpenTK?

Thanks!

• Hello, I have been working on SH Irradiance map rendering, and I have been using a GLSL pixel shader to render SH irradiance to 2D irradiance maps for my static objects. I already have it working with 9 3D textures so far for the first 9 SH functions.
In my GLSL shader, I have to send in 9 SH Coefficient 3D Texures that use RGBA8 as a pixel format. RGB being used for the coefficients for red, green, and blue, and the A for checking if the voxel is in use (for the 3D texture solidification shader to prevent bleeding).
My problem is, I want to knock this number of textures down to something like 4 or 5. Getting even lower would be a godsend. This is because I eventually plan on adding more SH Coefficient 3D Textures for other parts of the game map (such as inside rooms, as opposed to the outside), to circumvent irradiance probe bleeding between rooms separated by walls. I don't want to reach the 32 texture limit too soon. Also, I figure that it would be a LOT faster.
Is there a way I could, say, store 2 sets of SH Coefficients for 2 SH functions inside a texture with RGBA16 pixels? If so, how would I extract them from inside GLSL? Let me know if you have any suggestions ^^.
• By KarimIO
EDIT: I thought this was restricted to Attribute-Created GL contexts, but it isn't, so I rewrote the post.
Hey guys, whenever I call SwapBuffers(hDC), I get a crash, and I get a "Too many posts were made to a semaphore." from Windows as I call SwapBuffers. What could be the cause of this?
Update: No crash occurs if I don't draw, just clear and swap.
static PIXELFORMATDESCRIPTOR pfd = // pfd Tells Windows How We Want Things To Be { sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor 1, // Version Number PFD_DRAW_TO_WINDOW | // Format Must Support Window PFD_SUPPORT_OPENGL | // Format Must Support OpenGL PFD_DOUBLEBUFFER, // Must Support Double Buffering PFD_TYPE_RGBA, // Request An RGBA Format 32, // Select Our Color Depth 0, 0, 0, 0, 0, 0, // Color Bits Ignored 0, // No Alpha Buffer 0, // Shift Bit Ignored 0, // No Accumulation Buffer 0, 0, 0, 0, // Accumulation Bits Ignored 24, // 24Bit Z-Buffer (Depth Buffer) 0, // No Stencil Buffer 0, // No Auxiliary Buffer PFD_MAIN_PLANE, // Main Drawing Layer 0, // Reserved 0, 0, 0 // Layer Masks Ignored }; if (!(hDC = GetDC(windowHandle))) return false; unsigned int PixelFormat; if (!(PixelFormat = ChoosePixelFormat(hDC, &pfd))) return false; if (!SetPixelFormat(hDC, PixelFormat, &pfd)) return false; hRC = wglCreateContext(hDC); if (!hRC) { std::cout << "wglCreateContext Failed!\n"; return false; } if (wglMakeCurrent(hDC, hRC) == NULL) { std::cout << "Make Context Current Second Failed!\n"; return false; } ... // OGL Buffer Initialization glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glBindVertexArray(vao); glUseProgram(myprogram); glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_SHORT, (void *)indexStart); SwapBuffers(GetDC(window_handle));
• By Tchom
Hey devs!

I've been working on a OpenGL ES 2.0 android engine and I have begun implementing some simple (point) lighting. I had something fairly simple working, so I tried to get fancy and added color-tinting light. And it works great... with only one or two lights. Any more than that, the application drops about 15 frames per light added (my ideal is at least 4 or 5). I know implementing lighting is expensive, I just didn't think it was that expensive. I'm fairly new to the world of OpenGL and GLSL, so there is a good chance I've written some crappy shader code. If anyone had any feedback or tips on how I can optimize this code, please let me know.