Показать сообщение отдельно
Старый 15.11.2010, 22:23   #4
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Не работает альфа

public Form1()
        {
            
InitializeComponent();
            
engine.Init(AnT);
            
Gl.glBlendFunc(Gl.GL_SRC_ALPHAGl.GL_ONE_MINUS_SRC_ALPHA);
            
Gl.glEnable(Gl.GL_BLEND);
        }

        private 
void AnT_Load(object senderEventArgs e)
        {
            
Thread th = new Thread(fun);
            
th.Priority ThreadPriority.Normal;
            
th.Start();
            
th.Join();
        }

        
void fun()
        {
            
int i 45;
            
Random r = new Random();
            
//Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
            
Gl.glPushMatrix();
            
Gl.glTranslated(50501);
            
Gl.glScaled(r.NextDouble(), r.NextDouble(),1);
            
Gl.glRotated(i001);
            
Gl.glBegin(Gl.GL_POLYGON);
            
Gl.glColor4d(1000.1);
            
Gl.glVertex2d(-25, -25);
            
Gl.glColor4d(0100.1);
            
Gl.glVertex2d(-2525);
            
Gl.glColor4d(0010.1);
            
Gl.glVertex2d(2525);
            
Gl.glColor4d(1110.1);
            
Gl.glVertex2d(25, -25);
            
Gl.glEnd();
            
Gl.glPopMatrix();
            
Gl.glFlush();
            
AnT.Invalidate();
        } 
вот чать кода. поток th выполняется, но на компоненте AnT нифига не отрисовывается!

--------------------

UPD- вот с геймдева цитата
Спец
У опенжл большие проблемы с работой в многопоточности, точнее с работой из не основного потока приложения.
100% безопасно его можно использовать только в основном потоке. Иначе - жди сюрпризов, даже если у тебя и заработает у людей с другим софтом/хардом возможно работать не будет.
какая жаль
(Offline)
 
Ответить с цитированием