Я пытаюсь нарисовать алгоритм линии Xiaolin Wu в SDL2, из-за проблемы с альфа-каналом я ничего не получаю, я рисую его на поверхности, затем создаю текстуру с поверхности
Я пытался int SDL_SetTextureBlendMode(SDL_Texture* texture, SDL_BlendMode blendMode)
с помощьювсе возможные режимы смешивания
получение цвета: (здесь нет ошибки, я думаю)
void LINE_PlotPoint(SDL_Surface * surface,int x,int y, double alpha)
{
Uint32 *pixels = (Uint32 *)surface->pixels;
Uint32 pixel=SYS_GetForegroundColor();
Uint8 a= alpha*255;
pixel&=~amask;
pixel |= a;
pixels[ ( y * surface->w ) + x ] =pixel;
}
основной цикл для этой задачи:
if(event.type==SDL_MOUSEMOTION)
{
SDL_GetMouseState(&i,&j);
i-=grect.x;
j-=grect.y;
TOOL_DrawLine(tempSurface,x,y,i,j,1);//Xiaolin Wu's line algorithm
if(tempTexture)
{
SDL_DestroyTexture(tempTexture);
}
tempTexture=TOOL_CreateLineTexture(tempSurface,&srect,&drect);//create texture from surface and calculating rect(src & dest)
if(tempTexture==NULL)
{
puts("error");
}
SDL_SetTextureBlendMode(tempTexture,SDL_BLENDMODE_BLEND);
SDL_FillRect(tempSurface,NULL,NULL);//delete pixel from surface (no need for it)
}
я пробовалэто раньше с альфа-каналом = 255, и он работает нормально, но с различными значениями альфа ничего не происходит