0
SDL과 OpenGL로 작업하고 있습니다. SDL ttf를 사용하여 텍스트가있는 서페이스를 만든 다음 해당 서피스가있는 텍스처를 만듭니다. 나는 텍스트 알파 채널 (투명도)를 적용하기 위해 노력하고있어배경이없는 투명한 SDL_Surface
,이 방법을 사용하고 있습니다 : 불투명도가 제대로 적용
SDL_Surface * fontsurf = TTF_RenderUTF8_Blended(font,buff_split.at(i).c_str(),color);
SDL_PixelFormat *format = fontsurf->format;
SDL_Surface* newSurface = SDL_CreateRGBSurface(SDL_SRCALPHA,
fontsurf->w, fontsurf->h, 32,
0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000);
Uint32 alpha = 0;
alpha = SDL_MapRGBA(newSurface->format, 0,0,0, color.unused);
SDL_Rect rect;
rect.x = 0;
rect.y = 0;
rect.h = fontsurf->h;
rect.w = fontsurf->w;
int ret = SDL_FillRect(newSurface, &rect, alpha);
SDL_SetAlpha(newSurface,SDL_SRCALPHA,SDL_ALPHA_TRANSPARENT);
ret = SDL_BlitSurface(fontsurf, 0, newSurface, 0);
을하지만, SDL_MapRGBA는 검정색 배경을 만듭니다 " 새로운 표면 ". 배경을 추가하지 않고 텍스트에만 알파/불투명도를 적용 할 수 있습니까?
감사합니다. 당신은 저에게 아주 좋은 아이디어를주었습니다. 이제 괜찮아요. – Spamdark
남자, 여기에 도움이 필요합니다. 설정 한 색상 키가 작동하지 않습니다. 필 직사각형을 건너 뛸 때 블리트가 나에게 맞지 않습니다. – Spamdark
코드를 보여주십시오. (그러나이 질문을 편집하지 마십시오.) –