小编Lem*_*nek的帖子

SDL2:生成完全透明的纹理

如何使用SDL_CreateTexture创建透明纹理?默认情况下我用这样的代码创建texure:

SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,SDL_TEXTUREACCESS_TARGET, x, y);
Run Code Online (Sandbox Code Playgroud)

然后我在这个纹理上痛苦,将输出重定向到这个纹理.但是最后我想在屏幕上呈现这个(未更新的)像素是黑色的.

我尝试过使用以下方法:

 SDL_RenderClear(_Renderer);
Run Code Online (Sandbox Code Playgroud)

甚至与绘图和创建的纹理与绘画透明矩形与不同的混合模式,但我所有的结果仍然是不透明的纹理:/

   SDL_Rect rect={0,0,Width,Height};
   SDL_SetRenderDrawBlendMode(_Renderer,SDL_BLENDMODE_BLEND);
   SDL_SetRenderDrawColor(_Renderer,255,255,255,0);
   SDL_RenderFillRect(_Renderer,&rect);
Run Code Online (Sandbox Code Playgroud)

更具体:

    //this->texDefault.get()->get() = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,SDL_TEXTUREACCESS_TARGET, x, y);
    SDL_SetRenderTarget(_Renderer.get()->get(), this->texDefault.get()->get());
    SDL_SetRenderDrawBlendMode(this->_Renderer.get()->get(),SDL_BLENDMODE_NONE);
    SDL_SetRenderDrawColor(this->_Renderer.get()->get(),255,0,255,0);
    SDL_RenderClear(this->_Renderer.get()->get());
    //SDL_Rect rect={0,0,Width,Height};
    //SDL_SetRenderDrawColor(this->_Renderer.get()->get(),255,255,255,255);
    //SDL_RenderFillRect(this->_Renderer.get()->get(),&rect);
    //SDL_RenderClear(this->_Renderer.get()->get());
    //SDL_SetRenderDrawBlendMode(this->_Renderer.get()->get(),SDL_BLENDMODE_NONE);
    SDL_SetRenderTarget(_Renderer.get()->get(), NULL);
    SDL_Rect rect= {relTop+Top,relLeft+Left,Height,Width};
    SDL_SetRenderDrawBlendMode(this->_Renderer.get()->get(),SDL_BLENDMODE_BLEND);
    SDL_RenderCopy(this->_Renderer.get()->get(), this->texDefault->get(), NULL, &rect);
Run Code Online (Sandbox Code Playgroud)

这段代码总是产生不透明的纹理,与我为混合和alpha设置的不同

结果是:

在此输入图像描述

也许还有一些其他简单的方法可以在SDL2中创建透明的空纹理,比如x/y大小的完全透明的png,但在文件中加载这样的图像有点无意义:/

c++ opengl sdl graphic

9
推荐指数
1
解决办法
9282
查看次数

Powershell New-NetFirewallRule 和 -LocalUser 示例

如何创建仅影响一个本地帐户的防火墙规则

理论上,下面的示例就足够了,但是我缺少参数“-LocalUser”的值

下面是 PowerShell 命令

New-NetFirewallRule -DisplayName "BLOCKWWW" -Direction Outbound -LocalPort 80,443 -Protocol TCP -Action Block -LocalUser **WHATGOESHERE**
Run Code Online (Sandbox Code Playgroud)

windows powershell firewall rule

1
推荐指数
1
解决办法
2055
查看次数

标签 统计

c++ ×1

firewall ×1

graphic ×1

opengl ×1

powershell ×1

rule ×1

sdl ×1

windows ×1