
I used Rachael's smooth fluids to make the nukage warp here.
Moderator: GZDoom Developers
Code: Select all
> gzdoom.exe!swrenderer::DrawSpan32T<swrenderer::DrawSpan32TModes::OpaqueSpan>::Execute(DrawerThread * thread) Line 131 C++
[Inline Frame] gzdoom.exe!DrawerCommandQueue::Push(const swrenderer::SpanDrawerArgs &) Line 207 C++
gzdoom.exe!swrenderer::SWTruecolorDrawers::DrawSpan(const swrenderer::SpanDrawerArgs & args) Line 215 C++
[Inline Frame] gzdoom.exe!swrenderer::SpanDrawerArgs::DrawSpan(swrenderer::RenderThread * thread) Line 133 C++
gzdoom.exe!swrenderer::RenderFlatPlane::RenderLine(int y, int x1, int x2) Line 273 C++
gzdoom.exe!swrenderer::PlaneRenderer::RenderLines(swrenderer::VisiblePlane * pl) Line 73 C++
gzdoom.exe!swrenderer::RenderFlatPlane::Render(swrenderer::VisiblePlane * pl, double _xscale, double _yscale, int alpha, bool additive, bool masked, FDynamicColormap * colormap, FSoftwareTexture * texture) Line 149 C++
gzdoom.exe!swrenderer::VisiblePlane::Render(swrenderer::RenderThread * thread, int alpha, bool additive, bool masked) Line 140 C++
gzdoom.exe!swrenderer::VisiblePlaneList::Render() Line 346 C++
gzdoom.exe!swrenderer::RenderScene::RenderThreadSlice(swrenderer::RenderThread * thread) Line 294 C++
gzdoom.exe!swrenderer::RenderScene::RenderThreadSlices() Line 238 C++
gzdoom.exe!swrenderer::RenderScene::RenderActorView(AActor * actor, bool renderPlayerSprites, bool dontmaplines) Line 177 C++
gzdoom.exe!swrenderer::RenderScene::RenderView(player_t * player, DCanvas * target, void * videobuffer, int bufferpitch) Line 134 C++
gzdoom.exe!FSoftwareRenderer::RenderView(player_t * player, DCanvas * target, void * videobuffer, int bufferpitch) Line 201 C++
gzdoom.exe!SWSceneDrawer::RenderView(player_t * player) Line 113 C++
gzdoom.exe!OpenGLRenderer::FGLRenderer::RenderView(player_t * player) Line 236 C++
[External Code]
[Inline Frame] gzdoom.exe!std::_Func_class<void>::operator()() Line 781 C++
[Inline Frame] gzdoom.exe!D_Render(std::function<void __cdecl(void)>) Line 380 C++
gzdoom.exe!D_Display() Line 781 C++
gzdoom.exe!D_DoomLoop() Line 1038 C++
gzdoom.exe!D_DoomMain() Line 2731 C++
gzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 992 C++
gzdoom.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, wchar_t * cmdline, int nCmdShow) Line 1324 C++
> gzdoom.exe!swrenderer::DrawSpan32T<swrenderer::DrawSpan32TModes::OpaqueSpan>::Execute(DrawerThread * thread) Line 131 C++
Loop Loop (16) SoundStream::<unnamed-enum-Mono>
+ shade_constants {light_alpha=32 light_red=0 light_green=32 ...} swrenderer::ShadeConstants
+ texdata {width=32 height=32 xone=134217728 ...} swrenderer::DrawSpan32T<swrenderer::DrawSpan32TModes::OpaqueSpan>::TextureData
+ this 0xff13230b976be9ce {args={dc_normal={X=??? Y=??? Z=??? } dc_viewpos={X=??? Y=??? Z=??? } dc_viewpos_step=...} } swrenderer::DrawSpan32T<swrenderer::DrawSpan32TModes::OpaqueSpan> *
+ thread 0x0000023800000000 {thread={_Thr={_Hnd=??? _Id=??? } } current_queue=??? core=??? ...} DrawerThread *
> gzdoom.exe!swrenderer::RenderFlatPlane::RenderLine(int y, int x1, int x2) Line 273 C++
+ Thread 0x00000238460a0ac0 {Scene=0x000002384177ee68 {dontmaplines=false clearcolor=0 Threads={ size=1 } ...} ...} swrenderer::RenderThread *
+ drawerargs {dc_normal={X=0.000000000 Y=0.000000000 Z=1.00000000 } dc_viewpos={X=145.780975 Y=1053.63391 Z=-111.687149 } ...} swrenderer::SpanDrawerArgs
r_modelscene false bool
> gzdoom.exe!swrenderer::PlaneRenderer::RenderLines(swrenderer::VisiblePlane * pl) Line 73 C++
+ spanend 0x000000727f0fbc48 {0, 0, 0, -16324, 10486, -28836, -2622, 16397, -18637, 16008, 1024, 0, 1024, 0, 0, ...} short[5000]
t2 436 int
+ this 0x000000727f0fbc40 {Thread=0x00000238460a0ac0 {Scene=0x000002384177ee68 {dontmaplines=false clearcolor=...} ...} ...} swrenderer::PlaneRenderer * {swrenderer::RenderFlatPlane}
+ this 0x000000727f0fbc40 {Thread=0x00000238460a0ac0 {Scene=0x000002384177ee68 {dontmaplines=false clearcolor=...} ...} ...} swrenderer::RenderFlatPlane *
x2 810 int
Code: Select all
--- a/src/rendering/swrenderer/textures/warptexture.cpp
+++ b/src/rendering/swrenderer/textures/warptexture.cpp
@@ -60,7 +60,7 @@ const uint32_t *FWarpTexture::GetPixelsBgra()
if (time != GenTime[2])
{
auto otherpix = FSoftwareTexture::GetPixelsBgra();
- WarpedPixelsRgba.Resize(GetWidth() * GetHeight());
+ WarpedPixelsRgba.Resize(GetWidth() * GetHeight() * 4);
WarpBuffer(WarpedPixelsRgba.Data(), otherpix, GetWidth(), GetHeight(), WidthOffsetMultiplier, HeightOffsetMultiplier, time, mTexture->shaderspeed, bWarped);
FreeAllSpans();
GenTime[2] = time;
Code: Select all
auto otherpix = FSoftwareTexture::GetPixelsBgra();
Code: Select all
WarpedPixelsRgba.Resize(GetWidth() * GetHeight());
Code: Select all
WarpBuffer(WarpedPixelsRgba.Data(), otherpix, GetWidth(), GetHeight(), WidthOffsetMultiplier, HeightOffsetMultiplier, time, mTexture->shaderspeed, bWarped);
Code: Select all
FreeAllSpans();
Code: Select all
GenTime[2] = time;