Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
lubos
Založen: 10. 06. 2009 Příspěvky: 10
|
Zaslal: 10. červen 2009, 20:35:27 Předmět: |
|
|
tak pokrok sežralo mi to
glLineStipple ( 1), &HAAAA
Glvertex3f 10,10,10
Glvertex3f 100,100,100
ale neni znát žádný rozdíl |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 10. červen 2009, 20:36:28 Předmět: |
|
|
Eosie>
1) vychazel jsem z "nepsaneho" standardu, ktery se "vetsinou" dodrzuje. Samozrejme, ze to mozna bude nekde implementovano jinak, tato implementace je "nepsane" standartni.
2)Omlouvam se za terminologii, "chybou" jsem myslel fatalni vyjimku, samozrejme, ze nefatalni OGL "vyjimky" nejsou pro projekt to prave, nicmene zkompilovat a spusit by to melo jit...
3)Alespon by se zjistilo, zda je problem v zapisu hexa hodnot nebo jinde... Jak jsi i ty napsal, ani hex neni to "nej", tak proc si ztrpcovat zivot a nezapsat to v dvojkove soustave (uf, doufam, ze se to v Basicu nejak da ) _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
 |
johnnash
Založen: 30. 07. 2007 Příspěvky: 80
|
|
Návrat nahoru |
|
 |
lubos
Založen: 10. 06. 2009 Příspěvky: 10
|
Zaslal: 10. červen 2009, 21:15:32 Předmět: |
|
|
je to funkce která mi vykresluje rastr pracovního prostoru
( dělám program pro CNC frézku)
Celý kod je docela velký a má pár dll knihoven, jen těžko bych ho někam nahrával, taky nesem zkušený programátor ( učím se za pochodu a tak kod obsahuje množství kodu navíc, optimalizaci udělám až to nějak rozchodím)
Function rastr(show As Boolean)
Dim i, j As Double
If show = True Then
glBegin (GL_LINES)
glEnable (gl_Line_stipple)
glLineStipple (3000), &H5555
For j = 0 To mvarrozmeryStrojeY Step roztec
glBegin (GL_LINES)
glColor3ub 24, 18, 252
glVertex3f 0, j, 0
glVertex3f mvarrozmeryStrojeX, j, 0
Next j
For i = 0 To mvarrozmeryStrojeX Step roztec
glVertex3f i, 0, 0
glVertex3f i, mvarrozmeryStrojeY, 0
Next i
glEnd
Else
End If
glDisable (gl_Line_stipple)
End Function |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 10. červen 2009, 21:24:43 Předmět: |
|
|
if.then napsal: |
Eosie>
1) vychazel jsem z "nepsaneho" standardu, ktery se "vetsinou" dodrzuje. Samozrejme, ze to mozna bude nekde implementovano jinak, tato implementace je "nepsane" standartni.
2)Omlouvam se za terminologii, "chybou" jsem myslel fatalni vyjimku, samozrejme, ze nefatalni OGL "vyjimky" nejsou pro projekt to prave, nicmene zkompilovat a spusit by to melo jit...
3)Alespon by se zjistilo, zda je problem v zapisu hexa hodnot nebo jinde... Jak jsi i ty napsal, ani hex neni to "nej", tak proc si ztrpcovat zivot a nezapsat to v dvojkove soustave (uf, doufam, ze se to v Basicu nejak da ) |
Ad 1) Nepsaný standard není a nikdy nebyl. Compilery si to řeší po svém a ne vždy stejně. Je 5 celočíselných typů a hardware umí 4, takže existuje celkem 5 isotonních surjektivních zobrazení. int měl kdysi 2 bajty, teď má 4 bajty. long má 4 bajty, ale na některých x86_64 compilerech má 8 bajtů. S jistotou se dá použít akorát __int64 na VC++ nebo int64_t na GCC, podobně pro jiné varianty.
Ad 2 a 3: OK.
lubos napsal: |
Function rastr(show As Boolean)
Dim i, j As Double
If show = True Then
glBegin (GL_LINES)
glEnable (gl_Line_stipple)
glLineStipple (3000), &H5555
For j = 0 To mvarrozmeryStrojeY Step roztec
glBegin (GL_LINES)
glColor3ub 24, 18, 252
glVertex3f 0, j, 0
glVertex3f mvarrozmeryStrojeX, j, 0
Next j
For i = 0 To mvarrozmeryStrojeX Step roztec
glVertex3f i, 0, 0
glVertex3f i, mvarrozmeryStrojeY, 0
Next i
glEnd
Else
End If
glDisable (gl_Line_stipple)
End Function |
2x glBegin po sobě je chyba. glLineStipple nelze volat mezi glBegin a glEnd, stejně jako glEnable. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 10. červen 2009, 21:28:07 Předmět: |
|
|
och zase menenie stavu OpenGL medzi glBegin() glEnd(). toto by malo byt v kazdom tutorialy o OpenGL ze tam moze byt len funkcie defunujce data jednotlivich primitiv. teda glVertex glNormal glColor a podobne. ziadne glEnable glBind* a vsetko ostatne. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
lubos
Založen: 10. 06. 2009 Příspěvky: 10
|
Zaslal: 10. červen 2009, 21:32:48 Předmět: |
|
|
tak je to vyřešené chodí to když to napíšu takhle
glLineStipple (3000), &H5555
jo jo to první glbegin sem tam zapomněl smazat.
Dík za rady
Ještě jeden dotázek, máte někdo zkušenost se zjištováním polohy myši v okně? |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 10. červen 2009, 21:45:15 Předmět: |
|
|
to je zalezistost okenneho api. v OpenGL sa da pre dane x,y suradnice v okne zistit x,y,z pozicia v scene a naopak. cez gluProject() a gluUnProject() _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
|