1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00
Commit Graph

111 Commits

Author SHA1 Message Date
Sergey Lipskiy
ea713f8e0c Remove assync depth copy functionality.
It is important to copy current depth buffer to RDRAM.
Otherwise coronas in PD does not work when in movement.
2015-05-13 10:14:12 +06:00
Sergey Lipskiy
a3d702a4dd Fix detection of frame buffers address space intersection.
Fixed problem of growing frame buffers number.
2015-05-13 10:14:11 +06:00
Sergey Lipskiy
efdfa31eda Make FrameBuffer_CopyDepthBuffer() return bool. 2015-05-13 10:14:09 +06:00
Sergey Lipskiy
c3a8148d0e Fix DepthBufferToRDRAM::CopyToRDRAM - limit max value by 0xfffc. 2015-05-13 10:14:08 +06:00
Sergey Lipskiy
39cbd870ff Add check for NULL pointers in FrameBuffer_ActivateBufferTexture. 2015-05-13 10:14:07 +06:00
Sergey Lipskiy
a6a8d810fb Fix CopyToRDRAM.
Need to set scissor off before using glBlitFramebuffer.
2015-05-13 10:14:05 +06:00
Sergey Lipskiy
7835cfb180 Fix color image height detection for height = 1. 2015-05-13 10:14:02 +06:00
Sergey Lipskiy
3a27056759 Don't write buffer address to RDRAM for CFB buffers. 2015-05-13 10:14:01 +06:00
Sergey Lipskiy
09eea95270 Add separate define for ImageTextures.
Set it on for platforms, which support this functionality.
2015-05-13 10:13:55 +06:00
Sergey Lipskiy
94c381f734 Fix code duplication in FrameBuffer.cpp 2015-05-13 10:13:54 +06:00
Sergey Lipskiy
72ce00157b Code cleanup: Fix class members initialization order in ctors. 2015-05-13 10:13:54 +06:00
Sergey Lipskiy
17479ccbe4 Rewrite FrameBufferList::renderBuffer
Use new method for destination coordinates calculation.
2015-05-13 10:13:47 +06:00
Sergey Lipskiy
0d35f461df Fix integer-float mismatch in FrameBuffer.cpp 2015-05-13 10:13:46 +06:00
Sergey Lipskiy
b31b4cc3f6 Correct renderBuffer usage in FrameBuffer_ActivateBufferTexture. 2015-05-13 10:13:34 +06:00
Sergey Lipskiy
f637e91f22 Replace _SHIFTR( *REG.VI_H_START, 0, 10 ) == 0 check by VI.width == 0 one
Fixed glError in Knockout Kings 2000. The game sets h_start==h_end at start,
thus VI.width is zero but *REG.VI_H_START is not.
2015-05-13 10:13:32 +06:00
Sergey Lipskiy
e21f455686 Don't call glBindImageTexture if it is not supported. 2015-05-13 10:13:28 +06:00
Sergey Lipskiy
768430a234 Implement screen aspect ratio support. 2015-05-13 10:13:26 +06:00
Sergey Lipskiy
6bf0302f19 Fix errors found by code analizer. 2015-05-13 10:13:19 +06:00
Sergey Lipskiy
7548922cfd Add CombinerInfo::update().
Call it in FrameBufferList::attachDepthBuffer() before currentCombiner()->updateDepthInfo
to avoid glError caused by wrong shader program set.

Fixed glError with MarioTennis character selection.
2015-05-13 10:13:18 +06:00
Sergey Lipskiy
805cef4225 Correct isLowerField calculation in FrameBufferList::renderBuffer.
It did not work correct for Donkey Kong (E).
2015-05-13 10:13:14 +06:00
Sergey Lipskiy
2454f70568 Don't call gDPFillRDRAM for frame buffers created in VI_UpdateScreen(),
because VI_ORIGIN is not correct address of frame buffer start.
2015-05-13 10:13:12 +06:00
Sergey Lipskiy
5eac0797f0 Remove VI emulation code, which can't be tested for now.
Star Wars Ep. 1 Racer (E) is fixed.
2015-05-13 10:13:11 +06:00
Sergey Lipskiy
8733c2b3e7 Set m_drawBuffer = GL_BACK in FrameBufferList::destroy().
Fixed crash on rom reset.
2015-05-13 10:13:10 +06:00
Sergey Lipskiy
d121144760 Disable frame buffer activiti when H width is zero. 2015-05-13 10:13:08 +06:00
Sergey Lipskiy
de5c0120ed Fix FrameBufferList::renderBuffer for interlaced modes. 2015-05-13 10:13:08 +06:00
Sergey Lipskiy
5ac57395e9 Fix FrameBufferList::renderBuffer compilation errors. 2015-05-13 10:13:07 +06:00
Sergey Lipskiy
4499a6f966 Fix *BufferToRDRAM destroy().
Fixed run 4mb games after 8mb ones.
2015-05-13 10:13:04 +06:00
Sergey Lipskiy
86cde946e9 Refactor: replace C style OGL_* functions by OGLRender and OGLVideo classes.
OGLRender performs rendering operations.

OGLVideo initializes OpenGL and performes operations with graphics context.
It has platform-dependent implementations.
2015-05-13 10:13:00 +06:00
Sergey Lipskiy
8719d245a4 Fix frame buffer endAddress calculation. 2015-05-13 10:12:58 +06:00
Sergey Lipskiy
604d290fec Fix FrameBufferList::attachDepthBuffer() :
fixed GL_INVALID_ENUM error in glDrawBuffers call.
2015-05-13 10:12:54 +06:00
Sergey Lipskiy
f6ebb311a1 Massive refactoring: move API or OS dependent code to separate files.
Include/enable necessary source files in project files.
2015-05-13 10:12:51 +06:00
Sergey Lipskiy
3352193632 Depth buffer refactor 2015-05-13 10:12:48 +06:00
Sergey Lipskiy
fbf660d4ec Refactor: Make DepthBufferList singleton. 2015-05-13 10:12:48 +06:00
Sergey Lipskiy
d7f4e44674 Frame buffer refactor.
Use std::list as container for frame buffers.
2015-05-13 10:12:46 +06:00
Sergey Lipskiy
bd8b73d5b5 Refactor: Make frame buffer singleton 2015-05-13 10:12:45 +06:00
Sergey Lipskiy
7f6d7e2772 Refactor: rewrite TextureCache.
Store normal textures and frame buffer textures in separate maps.
Replace TextureCache_* functions by methods of TextureCache.
2015-05-13 10:12:44 +06:00
Sergey Lipskiy
23f7f24d35 Refactor: replace CombinerInfo::get().getCurrent() by inline function currentCombiner() 2015-05-13 10:12:39 +06:00
Sergey Lipskiy
0f176dcc4c Refactor: rename ShaderCombiner methods - name starts from lower case letter. 2015-05-13 10:12:37 +06:00
Sergey Lipskiy
7b3423d7de Code cleanup: fix idents for FrameBuffer.cpp 2015-05-13 10:12:35 +06:00
Sergey Lipskiy
2e5ad21ddd Refactor: remove combiner update methods from CombinerInfo and call them
directly for ShaderCombiner object.
2015-05-13 10:12:34 +06:00
Sergey Lipskiy
709f631cbf Refactor: Make Combiner_* functions as members of CombinerInfo. 2015-05-13 10:12:32 +06:00
Sergey Lipskiy
92eb61572e Fix scissor related problems:
- scissor dissable/enable in FrameBuffer_RenderBuffer()
- scissor height in OGL_UpdateStates()
2015-05-13 10:12:20 +06:00
Sergey Lipskiy
a3f9fe2186 Disable scissor in FrameBuffer_RenderBuffer(). 2015-05-13 10:12:09 +06:00
Sergey Lipskiy
e784ea7205 GLES2 fixes in frame/depth buffer initialization. 2015-05-13 10:12:05 +06:00
Sergey Lipskiy
898a189f89 Fixed Combiner_UpdateCombineFBInfo() call. 2015-05-13 10:12:03 +06:00
Sergey Lipskiy
7166d0aacf Fix hardware lighting. 2015-05-13 10:11:41 +06:00
Sergey Lipskiy
3d9e48230a Fix FrameBuffer_RenderBuffer for GLES2. 2015-05-13 10:11:39 +06:00
Sergey Lipskiy
caf4353295 Guard GLES2 incompatible code in FrameBuffer.cpp and gSP.cpp 2015-05-13 10:11:39 +06:00
Sergey Lipskiy
889b889847 Replace GL_DRAW_FRAMEBUFFER by GL_FRAMEBUFFER in GLES2 compatible code. 2015-05-13 10:11:38 +06:00
Sergey Lipskiy
90f8e4c2f3 Remove glDisable( GL_FOG ). 2015-05-13 10:11:37 +06:00