Sign in to follow this  
Followers 0

Eternity Engine 3.40.15 "Wodanaz"

Be nice for the original post to give some idea on what is new, yeah?

EDIT: I just found the "unofficial" News thread for this. Still would be nice to cut'n'paste this:

New features include the ability to render to an OpenGL context, resolution pick lists in the video menu, linked portal bug fixes, and more.

Share this post


Link to post

===========================================================================
* Features New to Version 3.40.15 *

These include some of the major features added in the latest version:

- Video Subsystem -

  * OpenGL "2D in 3D" backend is now available, allowing Eternity to display
    itself on a hardware rendering context, including full support for vsync.
    GL_ARB_pixel_buffer_object extension is optionally supported for even
    faster uploads to the video card.
    
  * i_softbitdepth configuration variable allows setting the SDL software 
    output bitdepth to 8-, 16-, 24-, or 32-bit.
    
  * Software video subsystem will now fallback to a previously successfully-
    set mode if the current mode set fails. If no mode has been set yet, the
    game will try to initialize 640x480x8 windowed mode.

  
- Interface Enhancements -

  * Console history buffer is now larger, and fewer messages are cut from the
    beginning of the buffer when it has been filled up. The entire cmdlist can
    again be viewed without filtering out any commands.
    
  * Video resolution pick lists restored to menus, based on user's favorite 
    aspect ratio and screen mode settings.
    
  * One resolution setting is now used for all supported games.


===========================================================================
A more complete list ;)

Share this post


Link to post

Cheers.

Tried to build this on Linux, the README and INSTALL documents seem out of date (no autogen.sh).
So I followed instructions in README-CMAKE.txt and went for the "Debug" target, but I get this error:

CMake Error in source/CMakeLists.txt:
  Cannot find source file "i_video.cpp".  Tried extensions .c .C .c++ .cc
  .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
I change it to i_sdlvideo.cpp, but that does not compile:
source/sdl/i_sdlvideo.cpp:216: error: ‘setpalette’ was declared ‘extern’ and later ‘static’
source/sdl/i_sdlvideo.cpp:68: error: previous declaration of ‘setpalette’
Fixing that, I then get linker errors:
CMakeFiles/eternity.dir/hal/i_video.o: In function `I_FinishUpdate()':
/home/aapted/other/ee-3.40.15-src/source/hal/i_video.cpp:182: multiple definit
ion of `I_FinishUpdate()'
CMakeFiles/eternity.dir/i_video.o:/home/aapted/other/ee-3.40.15-src/source/i_v
ideo.cpp:182: first defined here
CMakeFiles/eternity.dir/hal/i_video.o: In function `I_FinishUpdate()':
/home/aapted/other/ee-3.40.15-src/source/hal/i_video.cpp:182: multiple definit
ion of `noblit'
CMakeFiles/eternity.dir/i_video.o:/home/aapted/other/ee-3.40.15-src/source/i_v
ideo.cpp:182: first defined here
CMakeFiles/eternity.dir/hal/i_video.o: In function `I_FinishUpdate()':
/home/aapted/other/ee-3.40.15-src/source/hal/i_video.cpp:182: multiple definit
ion of `in_graphics_mode'
CMakeFiles/eternity.dir/i_video.o:/home/aapted/other/ee-3.40.15-src/source/i_v
ideo.cpp:182: first defined here
CMakeFiles/eternity.dir/hal/i_video.o: In function `I_FinishUpdate()':
/home/aapted/other/ee-3.40.15-src/source/hal/i_video.cpp:182: multiple definit
ion of `i_video_driver'
CMakeFiles/eternity.dir/i_video.o:/home/aapted/other/ee-3.40.15-src/source/i_v
ideo.cpp:182: first defined here

.... snip ....

CMakeFiles/eternity.dir/c_cmd.o: In function `C_AddCommands()':
/home/aapted/other/ee-3.40.15-src/source/c_cmd.cpp:435: undefined reference to `GL_AddCommands()'
CMakeFiles/eternity.dir/m_syscfg.o:(.data.rel+0xbb8): undefined reference to `cfg_gl_use_extensions'
CMakeFiles/eternity.dir/m_syscfg.o:(.data.rel+0xc10): undefined reference to `cfg_gl_arb_pixelbuffer'
CMakeFiles/eternity.dir/m_syscfg.o:(.data.rel+0xc68): undefined reference to `cfg_gl_colordepth'
CMakeFiles/eternity.dir/m_syscfg.o:(.data.rel+0xcc0): undefined reference to `cfg_gl_texture_format'
CMakeFiles/eternity.dir/m_syscfg.o:(.data.rel+0**18): undefined reference to `cfg_gl_filter_type'
CMakeFiles/eternity.dir/i_video.o:(.data.rel+0x3d4): undefined reference to `i_sdlvideodriver'
CMakeFiles/eternity.dir/hal/i_video.o:(.data.rel+0x3d4): undefined reference to `i_sdlvideodriver'

Share this post


Link to post
Dragonsbrethren said:

Dumb question, how do I enable GL rendering?

So i want to know either... :?

But apart from that it´s way more playable for me now. Great work...

Share this post


Link to post
Dragonsbrethren said:

Dumb question, how do I enable GL rendering?


add this line to base\system.cfg: i_videodriverid 1

Share this post


Link to post

andrewj said:
linker errors

hal/i_video.cpp and gl/gl_vars.cpp aren't included in source/CMakeLists.txt. I don't know enough about CMake to know the proper place to add them, though...

Share this post


Link to post

GL configuration options are in system.cfg - Sorry these aren't available in the menu yet; I kinda forgot about doing it before release and wanted to get the version out there for people to use.

Note that all of these options are available in the console and allow input of named options instead of numbers when set that way:

* i_videodriverid (-1, 0, 1)
Default is -1 which means to choose the highest priority video backend. This is currently SDL Software. 0 == SDL Software (explicitly configured), and 1 == SDL GL2D. Set this to 1 in order to enable the GL backend.

* i_videomode <geom string>
Same old video mode setting as always, in the form of WWWWxHHHH[flags]

* use_vsync (0 or 1)
Be sure to enable this to get glass-smooth updates. Default is enabled although it never did anything under SDL software *unless* your driver supported true DirectDraw 5 accelerated blit modes.

* gl_use_extensions (0 or 1)
Set to 1 in order to enable use of all extensions. Currently this only applies to the GL_ARB_pixel_buffer_object extension.

* gl_arb_pixelbuffer (0 or 1)
Set to 1 (in addition to the above) to turn on the ARB pixel buffer object extension, which can accelerate updates 1.5-2x (but only if supported - EE will acknowledge at startup whether the extension was successfully initialized or not).

* gl_colordepth (16, 24, or 32)
Tweak the bitdepth of the GL context. 32 is the default and recommended setting.

* gl_texture_format (various)
Don't recommend changing this unless you are having driver or framerate issues.

* gl_filter_type (0 or 1)
Change from LINEAR to NEAREST filtering. This won't currently have much (if any) of a visible effect, and is there again in case of driver issues. Eventually this may matter more since I intend to add the ability to render to a lower resolution and then utilize hardware scaling via a transform matrix to draw it on a larger framebuffer.

* d_fastrefresh (0 or 1)
Be sure this is set to 1 if you are going to use GL. GL does not like or need the main loop to be calling I_Sleep constantly; the vsync and ARB pixelbuffer asynchronous DMA transfers allow EE to run in parallel to the screen update process, so waiting is counter-intuitive.

For those looking to compile on Linux:
A patch has already been submitted to update CMakeLists. I will push it out to the repo this evening.

Share this post


Link to post

Stupid question:

What can I do with this on my new full HD 16:9 monitor? I can't choose neither a matching aspect ratio nor a matching resolution resulting in distorted visuals unless I play in a window which sucks.

Share this post


Link to post

You have to explicitly specify your "favorite aspect ratio", then it'll let you choose the corresponding fullscreen modes. (Or at least that's how it worked on my widescreen monitor)

Share this post


Link to post

Hm, ok, but why is 16:9 so well hidden at the end of the list where I didn't even look, thinking I already reached the end? This should be right after 4:3 considering that it's becoming the dominant aspect ratio of modern monitors.

Share this post


Link to post
Graf Zahl said:

Hm, ok, but why is 16:9 so well hidden at the end of the list where I didn't even look, thinking I already reached the end? This should be right after 4:3 considering that it's becoming the dominant aspect ratio of modern monitors.

Because excepting "Legacy" which is for the low-res modes and some direct multiples thereof, they are in numeric order by ratio from most square to most rectangular. Good enough answer? :P

16:9 is the widest aspect ratio currently supported. You can use wider, but the player's weapon will start to float over the status bar and we don't currently have a solution ready for that problem (ex: 17:9 modes, and 32:15 modes). I think use of these is exceptionally rare.

If the resolution you want to use doesn't appear in the 16:9 list tell me what it is and I can add it so long as the list doesn't get too long.

Also, of course, as always, the "video mode" item on the same page of the menu can be set to *any* resolution between 320x200 and 2560x1600.

Share this post


Link to post

I still can´t OpenGL get to work. I add i_videodriverid 1 into the system.cfg. No effect...

Share this post


Link to post
xAn said:

I still can´t OpenGL get to work. I add i_videodriverid 1 into the system.cfg. No effect...

There are only two effects: a lower framerate and vsync.

Share this post


Link to post

Yeah I gotta stress people, this isn't GZDoom with the lights and the filtering and the wa-zow. It's just pasting the game's output onto a texture.

This has the advantage that entryway mentioned, which is supporting vsync, a feature long-requested but impossible with SDL's software backend under Windows on any reasonably modern machine (my PII supported DirectDraw 5 accelerated "software" surfaces, but no box I've had since then seems to do so).

This can also, in the future, be used to allow hardware scaling (though a lot of people don't like the way it looks), and even special effects such as tinting the screen, or tilting it/rotating it to different angles :P

Share this post


Link to post

Okay, now i got it. Thanks for the help and infos.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0