What is a potatoese?

Started by
35 comments, last by RoundPotato 9 years, 9 months ago

Web browser can be quite simple.

Three of the best examples are

Neither of these use OpenGL or DirectX.

The main consumer web browsers like Firefox, Chrome and IE are horrendously bloated and use Javascript for things they probably shouldn't be (I am looking at you Firefox download manager!)

If you want to make a web browser, you do not really need much code these days if you leverage the rendering engines provided by these projects. You might want to look into:

There are loads more. One word of warning though is that they do drag in a lot of dependencies into your project and the Microsoft WebBrowser route is very unportable (Though probably the easier solution for Windows users).

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Advertisement


Guys, you are misinterpreting my question, your answers are great(covering the overview description, usage and different functionality it supports).

But like attempted to emphasise "Using what is Firefox and chrome made of? (just made of, NOT what it supports.)" In the sense that it's simply made of C++ and OpenGL/DirectX, REGARDLESS of it it supporting a lot of error corrections, file formats, interpretation of higher scripting languages, etc, etc.(After reading that software rendering may not involve a GPU thus rendering APIs such as OpenGL/DirectX useless I see where you were coming from, but consider a typical/most common usage on average computer with a GPU with and average user) I'm sure you can sit there for hours listing what makes up a proper web browser.

All of the functional support is implemented using C++(or other language) and rendering( graphical interface components, images, fonts ,ect ect) is DirectX/OpenGL, so repeating myself it's just a program written in C++(or other) and OpenGL/DirectX.

After having read the above, can you confirm that, or am I missing/misunderstanding something?

Alright,I hate for this to be my first post.. But honestly.

Why ask for help when you are not willing to listen to other peoples ideas? You need to leave your shell. They are trying their best to help you and inform you that they DON'T Merely use directx/opengl. Some of the people even listed libraries you can use that will help you in creating a 'simple' browser.

If you are not getting the answers you seek, the reason is that you yourself are not being clear on what you are seeking.


 

In the sense that it's simply made of C++ and OpenGL/DirectX,

You can compile Firefox with hardware acceleration support removed, voiding your claim.

Note that since a lot of the Firefox UI and preference engine uses JavaScript, this voids the claim that C++ is all that's used to write the program.



rendering( graphical interface components, images, fonts ,ect ect)

A lot of the font rendering and GUI is GTK+ in Linux. Look up windowing toolkits!



After having read the above, can you confirm that, or am I missing/misunderstanding something?

YES!

Please, please look up any of the terms in this thread in Google. It sounds like you decided that Firefox is just C++ and Direct3D/OpenGL, and you're going to repeat your question until we agree with you.

(random flailing)


The entire first page answered every possible interpretation of your question, EVEN AFTER YOU CHANGED IT. At this point, perhaps you're just trolling?
All of the functional support is implemented using C++(or other language) and rendering( graphical interface components, images, fonts ,ect ect) is DirectX/OpenGL, so repeating myself it's just a program written in C++(or other) and OpenGL/DirectX.

After having read the above, can you confirm that, or am I missing/misunderstanding something?

Like I said. Web Browsers exist that do not use OpenGL or DirectX. So your assumption above is incorrect.

Web Browsers using DirectX or OpenGL is actually quite a new thing that came along with the early spec of HTML5 (i.e for accelerated 2D drawing). NetSurf just uses plain old Gtk+ and Cairo to render pages (not OpenGL). IE6 uses GDI+ to render pages and not DirectX.

Some of the recent common browsers however do use OpenGL or DirectX but only optionally. If for example the machine does not have a graphics card or is rendered via remote desktop / X11 forwarding, it may fall back to software (Or likely emulate OpenGL / DirectX in software).

But yes, a web browser is just a program written in a programming language. Likely by a human!

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

so repeating myself it's just a program written in C++(or other) and OpenGL/DirectX.


Yes, you could theoretically replicate 1990's-era browsers with just C++ and a basic windowing/input/render library (you could use Direct3D/OpenGL for the rendering part if you wish).

See libRocket for an example of a pure C++ library that implements some of HTML4 and CSS2 and allows you to plug in a Direct3D or OpenGL renderer and then combine this with a pure C++ JavaScript interpreter like TinyJS or the standalone versions of Spidermonkey and add networking support using a mostly-pure C++ library like Boost.ASIO then toss in basic window creation and input handling using a C++ library like SFML and there you'd have an example of a (more or less useless) browser that is (almost) just C++ and Direct3D/OpenGL.


However, a modern browser makes use of a wide variety of OS-specific APIs for high-performance networking, audio, high-performance/encrypted multimedia support, fullscreen support, various input devices, geolocation APIs, notification APIs, some kind of video display (which may be Direct3D/OpenGL or it could be a simpler 2D graphics API), security and sandboxing APIs, memory execution control for JIT compilation of scripts, integration with default file/URI facilities in the OS (so clicking a link in an email will open your browser), font lookup/detection, battery monitoring, accelerometers, filesystem inspection, etc.

These APIs are not really optional. They are parts of the HTML5 specification and plenty of Web sites/applications require these features. Lacking them would mean you'd be unable to use common sites like Youtube or even Facebook properly (or at all). A modern browser is basically an operating system that's bundled with its own VM; they're not at all "just" applications.

Sean Middleditch – Game Systems Engineer – Join my team!


 


Hardware acceleration removal would mean no OpenGL/DirectX is being used?

Yes, only as an after-thought for speed if enabled during build.


Usage of Javascript means that is another language used besides the core C++ , so that is the reason that you cannot agree to the subset of my statement "it's simply C++"?

"Usage of another language means that another language is used, so is that the reason that you cannot agree to my statement that only one language is used?"


Meaning

Did you seriously skip the whole article, looking for the first link? The fact that it uses Cairo is irrelevant: it is what it does, not how.


Menus and similar "Control Graphical components" are usually implemented using other libraries, but can be implemented using one of (many?) rendering APIs like OpenGL and/or DirectX.

What if I told you that window toolkits like GTK+ don't need to and probably don't use OpenGL/Direct3D? 3D hardware rendering is unnecessary.

This topic is closed to new replies.

Advertisement