// File: /workspace/github_cpp_makefile_star2_O1/KellerMartins[P]PDS2-Pacman/source/graphics/rendering.cpp
// Function: RenderManager::RenderBloom()
void RenderBloom(){
        //Render vertical pass
        BeginTextureMode(_vBlurRT);
            BeginShaderMode(_blurPass);

                Vector4 pixelSize4 = {0, (1.0f/_blurRT.texture.height)/2.0f, 0, 1.0f/_blurRT.texture.height};
                SetShaderValue(_blurPass, _blurPassPixelSizeLoc, (const float*) &pixelSize4, 4);
                SetShaderValuei(_blurPass, _blurPassBlurQualityLoc, (const int*) &_blurQuality, 1);

                Rectangle src = (Rectangle){ 0, 0, (float)_blurRT.texture.width, (float)-_blurRT.texture.height };
                Rectangle dest = (Rectangle){ 0, 0, (float)_vBlurRT.texture.width, (float)_vBlurRT.texture.height };
                DrawTexturePro(_blurRT.texture, src, dest, (Vector2){ 0, 0 }, 0,  WHITE);

            EndShaderMode();
        EndTextureMode();

        //Render horizontal pass
        BeginTextureMode(_blurRT);
            BeginShaderMode(_blurPass);

                pixelSize4 = (Vector4){(1.0f/_vBlurRT.texture.width)/2.0f, 0, 1.0f/_vBlurRT.texture.width,0};
                SetShaderValue(_blurPass, _blurPassPixelSizeLoc, (const float*) &pixelSize4, 4);
                SetShaderValuei(_blurPass, _blurPassBlurQualityLoc, (const int*) &_blurQuality, 1);

                src = (Rectangle){ 0, 0, (float)_vBlurRT.texture.width, (float)-_vBlurRT.texture.height };
                dest = (Rectangle){ 0, 0, (float)_blurRT.texture.width, (float)_blurRT.texture.height };
                DrawTexturePro(_vBlurRT.texture, src, dest, (Vector2){ 0, 0 }, 0,  WHITE);
            EndShaderMode();
        EndTextureMode();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xe0, %rsp
movups 0x205719(%rip), %xmm0   # 0x2154fc
movups %xmm0, 0x1c(%rsp)
movups 0x205701(%rip), %xmm0   # 0x2154f0
movups %xmm0, 0x10(%rsp)
movups 0x2056e5(%rip), %xmm0   # 0x2154e0
movups %xmm0, (%rsp)
callq 0x2e406
leaq 0x20530d(%rip), %rbx    # 0x215118
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x205379(%rip), %eax    # 0x215198
movl %eax, 0x80(%rsp)
callq 0x22413
xorl %r12d, %r12d
xorps %xmm0, %xmm0
cvtsi2ssl 0x205683(%rip), %xmm0 # 0x2154bc
leaq -0x70(%rbp), %r14
movl %r12d, (%r14)
movss 0x892ec(%rip), %xmm1    # 0x99134
divss %xmm0, %xmm1
movaps %xmm1, %xmm0
mulss 0x8949d(%rip), %xmm0    # 0x992f4
movss %xmm0, 0x4(%r14)
movl %r12d, 0x8(%r14)
movss %xmm1, 0xc(%r14)
movl 0x2055d7(%rip), %eax    # 0x215444
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x205317(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
movl %eax, %edi
movq %r14, %rsi
movl $0x4, %edx
callq 0x22517
movl 0x2055ab(%rip), %eax    # 0x215448
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x2052e7(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
leaq 0x205251(%rip), %r15    # 0x215110
movl %eax, %edi
movq %r15, %rsi
movl $0x1, %edx
callq 0x225da
xorps %xmm1, %xmm1
cvtsi2ssl 0x2055df(%rip), %xmm1 # 0x2154b8
xorl %eax, %eax
subl 0x2055db(%rip), %eax    # 0x2154bc
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtsi2ssl 0x2055f5(%rip), %xmm3 # 0x2154e8
xorps %xmm0, %xmm0
cvtsi2ssl 0x2055ee(%rip), %xmm0 # 0x2154ec
unpcklps %xmm0, %xmm3            # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
movups 0x2055ac(%rip), %xmm0   # 0x2154b4
movaps %xmm0, -0x60(%rbp)
movl 0x2055b2(%rip), %eax    # 0x2154c4
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
movl %eax, 0x10(%rsp)
movaps -0x60(%rbp), %xmm0
movups %xmm0, (%rsp)
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
xorps %xmm4, %xmm4
xorps %xmm5, %xmm5
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x774f3
callq 0x22456
callq 0x2e486
movups 0x205581(%rip), %xmm0   # 0x2154cc
movups %xmm0, 0x1c(%rsp)
movups 0x205569(%rip), %xmm0   # 0x2154c0
movups %xmm0, 0x10(%rsp)
movups 0x20554d(%rip), %xmm0   # 0x2154b0
movups %xmm0, (%rsp)
callq 0x2e406
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x205218(%rip), %eax    # 0x215198
movl %eax, 0x80(%rsp)
callq 0x22413
xorps %xmm0, %xmm0
cvtsi2ssl 0x205551(%rip), %xmm0 # 0x2154e8
movss 0x89195(%rip), %xmm1    # 0x99134
divss %xmm0, %xmm1
movss 0x89349(%rip), %xmm0    # 0x992f4
mulss %xmm1, %xmm0
movss %xmm0, (%r14)
movl %r12d, 0x4(%r14)
movss %xmm1, 0x8(%r14)
movl %r12d, 0xc(%r14)
movl 0x20547c(%rip), %eax    # 0x215444
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x2051bc(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
movl %eax, %edi
movq %r14, %rsi
movl $0x4, %edx
callq 0x22517
movl 0x205450(%rip), %eax    # 0x215448
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x20518c(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
movl %eax, %edi
movq %r15, %rsi
movl $0x1, %edx
callq 0x225da
xorps %xmm1, %xmm1
cvtsi2ssl 0x2054bb(%rip), %xmm1 # 0x2154e8
subl 0x2054b8(%rip), %r12d   # 0x2154ec
xorps %xmm0, %xmm0
cvtsi2ss %r12d, %xmm0
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtsi2ssl 0x205471(%rip), %xmm3 # 0x2154b8
xorps %xmm0, %xmm0
cvtsi2ssl 0x20546a(%rip), %xmm0 # 0x2154bc
unpcklps %xmm0, %xmm3            # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
movups 0x205488(%rip), %xmm0   # 0x2154e4
movaps %xmm0, -0x40(%rbp)
movl 0x20548e(%rip), %eax    # 0x2154f4
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movl %eax, 0x10(%rsp)
movaps -0x40(%rbp), %xmm0
movups %xmm0, (%rsp)
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
xorps %xmm4, %xmm4
xorps %xmm5, %xmm5
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x774f3
callq 0x22456
callq 0x2e486
addq $0xe0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq