// File: /workspace/github_cpp_makefile_star2_O3/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 0x205671(%rip), %xmm0   # 0x2154fc
movups %xmm0, 0x1c(%rsp)
movups 0x205659(%rip), %xmm0   # 0x2154f0
movups %xmm0, 0x10(%rsp)
movups 0x20563d(%rip), %xmm0   # 0x2154e0
movups %xmm0, (%rsp)
callq 0x2e48a
leaq 0x205265(%rip), %rbx    # 0x215118
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x2052d1(%rip), %eax    # 0x215198
movl %eax, 0x80(%rsp)
callq 0x22497
xorl %r12d, %r12d
xorps %xmm0, %xmm0
cvtsi2ssl 0x2055db(%rip), %xmm0 # 0x2154bc
leaq -0x70(%rbp), %r14
movl %r12d, (%r14)
movss 0x89244(%rip), %xmm1    # 0x99134
divss %xmm0, %xmm1
movaps %xmm1, %xmm0
mulss 0x893f5(%rip), %xmm0    # 0x992f4
movss %xmm0, 0x4(%r14)
movl %r12d, 0x8(%r14)
movss %xmm1, 0xc(%r14)
movl 0x20552f(%rip), %eax    # 0x215444
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x20526f(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
movl %eax, %edi
movq %r14, %rsi
movl $0x4, %edx
callq 0x2259b
movl 0x205503(%rip), %eax    # 0x215448
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x20523f(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
leaq 0x2051a9(%rip), %r15    # 0x215110
movl %eax, %edi
movq %r15, %rsi
movl $0x1, %edx
callq 0x2265e
xorps %xmm1, %xmm1
cvtsi2ssl 0x205537(%rip), %xmm1 # 0x2154b8
xorl %eax, %eax
subl 0x205533(%rip), %eax    # 0x2154bc
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtsi2ssl 0x20554d(%rip), %xmm3 # 0x2154e8
xorps %xmm0, %xmm0
cvtsi2ssl 0x205546(%rip), %xmm0 # 0x2154ec
unpcklps %xmm0, %xmm3            # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
movups 0x205504(%rip), %xmm0   # 0x2154b4
movaps %xmm0, -0x60(%rbp)
movl 0x20550a(%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 0x77577
callq 0x224da
callq 0x2e50a
movups 0x2054d9(%rip), %xmm0   # 0x2154cc
movups %xmm0, 0x1c(%rsp)
movups 0x2054c1(%rip), %xmm0   # 0x2154c0
movups %xmm0, 0x10(%rsp)
movups 0x2054a5(%rip), %xmm0   # 0x2154b0
movups %xmm0, (%rsp)
callq 0x2e48a
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x205170(%rip), %eax    # 0x215198
movl %eax, 0x80(%rsp)
callq 0x22497
xorps %xmm0, %xmm0
cvtsi2ssl 0x2054a9(%rip), %xmm0 # 0x2154e8
movss 0x890ed(%rip), %xmm1    # 0x99134
divss %xmm0, %xmm1
movss 0x892a1(%rip), %xmm0    # 0x992f4
mulss %xmm1, %xmm0
movss %xmm0, (%r14)
movl %r12d, 0x4(%r14)
movss %xmm1, 0x8(%r14)
movl %r12d, 0xc(%r14)
movl 0x2053d4(%rip), %eax    # 0x215444
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x205114(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
movl %eax, %edi
movq %r14, %rsi
movl $0x4, %edx
callq 0x2259b
movl 0x2053a8(%rip), %eax    # 0x215448
movl $0x10, %ecx
movq %rsp, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x2050e4(%rip), %ecx    # 0x215198
movl %ecx, 0x80(%rsp)
movl %eax, %edi
movq %r15, %rsi
movl $0x1, %edx
callq 0x2265e
xorps %xmm1, %xmm1
cvtsi2ssl 0x205413(%rip), %xmm1 # 0x2154e8
subl 0x205410(%rip), %r12d   # 0x2154ec
xorps %xmm0, %xmm0
cvtsi2ss %r12d, %xmm0
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtsi2ssl 0x2053c9(%rip), %xmm3 # 0x2154b8
xorps %xmm0, %xmm0
cvtsi2ssl 0x2053c2(%rip), %xmm0 # 0x2154bc
unpcklps %xmm0, %xmm3            # xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
movups 0x2053e0(%rip), %xmm0   # 0x2154e4
movaps %xmm0, -0x40(%rbp)
movl 0x2053e6(%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 0x77577
callq 0x224da
callq 0x2e50a
addq $0xe0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq