játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5471
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2525

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2194
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [142]
Asylum - Törzstag | 5471 hsz       Online status #206544   2015.02.07 22:16 GMT+1 óra  
Instalok - Tag | 576 hsz       Online status #206539   2015.02.07 12:24 GMT+1 óra  
Nem találtam WinAPI topicot, szóval ide írom.
WinAPI + OpenGL, fullscreen és windowed ablak között váltogatok, viszont valami szétmegy az első ilyen oda-vissza után. Windowed módban indul (1280x720) WS_OVERLAPPEDWINDOW style-al. Gombnyomásra vált Fullscreenbe (WS_POPUP), majd visszaváltok Windowed módba. Eddig működik, azonban, ha megint be akarom rakni Fullscreenbe, akkor szétesik az egész, nem igazán lesz fullscreen, csak a monitort állítja át arra a felbontásra, de ugyan úgy látszik a tálca, és a mögötte futó ablakok. Hibát nem generál. Ami konkrétan történik:
Kód:
// ez hívódik meg, amikor változás történik
if (fullscreen)
    setFullscreen();
else
    unsetFullscreen();

adjust();

SetWindowLong(hwnd, GWL_STYLE, style);
SetWindowPos(hwnd, HWND_TOP, x, y, width, height, SWP_SHOWWINDOW | SWP_FRAMECHANGED);

// ...

void ApplicationWin::setFullscreen()
{
    Require(fullscreen);
    LOG_DEBUG("Trying to set fullscreen mode...");

    DEVMODE dm;
    memset(&dm, 0, sizeof(dm));
    dm.dmSize       = sizeof(dm);
    dm.dmPelsWidth  = width;
    dm.dmPelsHeight = height;
    dm.dmFields     = DM_PELSWIDTH | DM_PELSHEIGHT;

    if (ChangeDisplaySettings(&dm, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
    {
        LOG_ERROR("Failed to set fullscreen. Falling back to windowed mode...");
        fullscreen = false;
    }
}

void ApplicationWin::unsetFullscreen()
{
    ChangeDisplaySettings(0, CDS_FULLSCREEN);
}

Az adjust() nem csinál sok extrát, beállítja a megfelelő style-t, illetve windowed mode esetén az ablak méretét állítja át picit.

Ha viszont már fullscreen módban vagyok újra, és felbontást váltok, akkor megjavul.

   
proof88 - Törzstag | 530 hsz       Online status #206374   2015.01.24 17:37 GMT+1 óra  
A mingw-setupban benne van a fordító.
   
itamas - Tag | 100 hsz       Online status #206372   2015.01.24 08:16 GMT+1 óra  
Benne kell, hogy legyen, mert az én gépemen első indítás után ezt a GNU GCC-t ajánlotta fel fordítónak, és ugyanarról a CodeBlocks-ról van szó mindkét esetben. A Settings/Compiler-ben hogyan lehet kikeresni a fordítót, mert ott sem láttam.
És a mingw-setup a fordító nélküli telepítőt jelenti?
Instalok, lehet, felrakom a Visual Studiot, bár már előre félek, hogy annál mi lesz a hiba...
Egyébként letöltöttem a legújabb, 5-ös Dev C++-t is, amit már nem a BloodSheed fejleszt, innen:
http://orwelldevcpp.blogspot.hu/2014/07/dev-c-571-released.html
Ezt használja valaki itt?
   
proof88 - Törzstag | 530 hsz       Online status #206339   2015.01.21 19:16 GMT+1 óra  
Ha benne van a fordító a telepítőben, akkor nem kell külön letölteni. De van fordító nélküli telepítő is. CodeBlocks oldalán, jelenleg codeblocks-13.12mingw-setup.exe a friss.
   
Instalok - Tag | 576 hsz       Online status #206338   2015.01.21 18:24 GMT+1 óra  
Tegyél fel egy visual studiot, az csak next-next-finish és működik. Ráadásul nekem személy szerint szimpatikusabb, mint a CB.

   
itamas - Tag | 100 hsz       Online status #206337   2015.01.21 17:53 GMT+1 óra  
A "GNU GCC compiler"-t és hasonlókat külön kell letölteni a CodeBlocks-hoz? Ugyanis a bátyámék gépén azt írja ki, hogy nem található ez a fordító (nálam meg megvan, holott az övékéről hoztam a CB-ot).
   
Marcsello - Tag | 228 hsz       Online status #206336   2015.01.21 14:42 GMT+1 óra  
nekem elegem lett a vírusirtókból, úgyhogy letöröltem a fenébe, azóta nincs ilyen gondom :3
Az élet szép, csak tele van Bugokkal
http://marcsello.com/
   
Lord_Crusare - Törzstag | 1312 hsz       Online status #206330   2015.01.20 14:42 GMT+1 óra  
Tökéletesen jó az Avast, de legalább egy internet security-re fizess elő, az fillérekbe kerül és brutál jó. Vagy van nagyobb, 3 éves csomag is.

Egyébként az ingyenes Avast is tud mindent, ami kell. Javaslom, hogy indíts egy boot-time scant, ami végigellenőrzi a gépet mielőtt a Windows elindulna. Ha gond van, ez megtalálja.

   
Asylum - Törzstag | 5471 hsz       Online status #206320   2015.01.20 12:43 GMT+1 óra  
Avastot hajítsd ki és vegyél inkább havonta egy GameStar-t, abban van nod32.
A hardvert meg ellenőrizd le, mert amíg él a garancia aaddig kell kicseréltetni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
itamas - Tag | 100 hsz       Online status #206319   2015.01.20 12:32 GMT+1 óra  
Örömmel jelentem be mindenkinek, hogy most már végre van CodeBlocks-om nekem is, ugyanis sikerült pendrive-on áthozni a kitömörítettet a saját számítógépemre.
Az viszont eléggé lehangoló lenne, ha kiderülne, hogy valami hardveres alkatrésze hibás a gépemnek, ugyanis még egy éve sincs, hogy megvásároltam. Esetleg vírus okozhatta a Windows megbolondulását? Mert az volt (van?) rajta az Avastom szerint.
   
Marcsello - Tag | 228 hsz       Online status #206315   2015.01.20 09:39 GMT+1 óra  
nah, csak a vírusírtó baszakszik, kapcsold ki, amíg letöltesz, nekem is voltak ilyen gondok

Mellesleg a RAM-om nekem is hibázik, szopok is miatta, de úgy vagyok vele, hogy inkább már új gépet kellene vennem
Az élet szép, csak tele van Bugokkal
http://marcsello.com/
   
Asylum - Törzstag | 5471 hsz       Online status #206310   2015.01.19 20:21 GMT+1 óra  
Futtass le egy memtest86+ t (pendrivera kirakod és arról bootolsz).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
proof88 - Törzstag | 530 hsz       Online status #206309   2015.01.19 20:07 GMT+1 óra  
ott valami memória probléma lesz vagy hasonló hardveresen elkefélt dolog ...
   
itamas - Tag | 100 hsz       Online status #206308   2015.01.19 17:29 GMT+1 óra  
Idézet
Tunyu :
format c: <-- ez megoldja a problémád! Ha újra raktad a windows-t ,rakj rá vírusírtót is.



Tartottam ettől a választól... Pedig van a gépemen Avast Free Antivirus, minden rendben működik - leszámítva, hogy így vacakol ezeknél a setup.exe-knél meg néhány tömörített állománynál.
A Dev C++ bezzeg szépen felment tegnap Apropó, ebben le lehet valahogy kérdezni egyszerre egynél több billentyű lenyomását valahogy, mert a játékomban szükség lenne erre

Szerk.: az imént kicseleztem a számítógépemet: a bátyáméknál töltöttem le a CB ZIP-es változatát, rendben lejött és ki is lehetett tömöríteni, úgyhogy most viszem pendrive-on a sajátomra. Remélem, működni fog; drukkoljatok nekem

Ezt a hozzászólást itamas módosította (2015.01.19 17:54 GMT+1 óra, ---)
   
Tunyu - Tag | 449 hsz       Online status #206307   2015.01.19 16:25 GMT+1 óra  
format c: <-- ez megoldja a problémád! Ha újra raktad a windows-t ,rakj rá vírusírtót is.

   
itamas - Tag | 100 hsz       Online status #206306   2015.01.19 16:02 GMT+1 óra  
Igen, a Windows eredeti, és most letöltöttem a Winzip-et, meg egy telepítős helyett tömörített változatát a CB-nak, de az is hibásnak írja ki, ahogyan a WinRar is...
   
Asylum - Törzstag | 5471 hsz       Online status #206305   2015.01.19 14:50 GMT+1 óra  
Akkor neked ott valami más gond lesz...eredeti a windowsod?
Próbáld meg a visual studio express-t (for windows desktop lesz az, regisztrálni kell):

http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
itamas - Tag | 100 hsz       Online status #206304   2015.01.19 14:45 GMT+1 óra  
Megnéztem a blogodat: elég jól, azaz szájbarágósan magyarázol; az ilyet szeretem.
Eljutottam a CodeBlocks letöltéséig is a megadott címről, ám telepíteni nem tudtam egyik windowsos fájl sem, mert mindig valami hibaüzenetet írt ki, pl. hogy "@.dll hiányzik".
De egyébként más miatt is vakarom a fejem, mert töltöttem le pár dolgot a C++-hoz: különféle bővítményeket .ZIP-ben betömörítve, de érdekes módon képtelen a Windows7 Ultimate-öm megnyitni őket, mert azt írja, hogy érvénytelen vagy sérült állományok.
Gondolom, ezek lennének azok a dolgok, amik miatt az okosok kitalálták a "minden kezdet nehéz" mondást...
   
Asylum - Törzstag | 5471 hsz       Online status #206296   2015.01.18 20:32 GMT+1 óra  
http://darthasylum.blog.hu/

De ha most kezdted (pláne gamemaker után), akkor talán a nyelvet kéne gyakorolni előbb. A dev-c++ már elavult, használd a code::blocks-ot vagy a visual studio-t.

Windowsos applikációkat egyébként vagy c#-ban .net-el vagy c++ban QT-vel fejlesztenek. Játékokat c++ és directx-el.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
itamas - Tag | 100 hsz       Online status #206294   2015.01.18 17:53 GMT+1 óra  
Sziasztok!
Elővettem újra és nekirugaszkodtam ismét a Dev C++-nak, hiszen oly sok helyen olvasni, hogy C/C+/C++ nyelvben jártas programozóra van szükség.
A forrás fájlok írásába már kezdek belejönni (hála a Game Maker-es előéletemnek), de hogy Windowsos alkalmazást hogyan lehet írni, készíteni, arra tudnátok-e mondani valami jó helyet, ahonnan letölthetek segédleteket, leírásokat? Amit eddig kiböngésztem a világhálóról, az eléggé az alap, de jó volna tudnom, hogy pl. grafikát hogyan használhatok benne (képek betöltése, rajzolás, stb.)? Egyáltalán: így alapban mire elég ez a Dev C++? Komolyabb programok készítéséhez le lehet és kell tölteni hozzá különféle eljáráskönyvtárakat, amiket az #include <...> paranccsal kell beépíteni? Csak ezekkel felvértezve lesz olyan jó játékprogram-készítő eszköz, amely vetélytársa az erre kiélezett szoftvereknek? Persze nem Quake-et akarok vele egyből készíteni, hanem kis egyszerűségeket, de azért mégis jó lenne tudnom, hogy mik a korlátai.
Ne haragudjatok, ha butaságokat kérdeztem, de teljesen zöldfülű C++ felhasználó vagyok.
   
Instalok - Tag | 576 hsz       Online status #205909   2014.12.28 22:20 GMT+1 óra  
A Qt-val az a bajom, hogy nem igazán akarom használni. Mármint magát a frameworkot.

Összepakolásztam az Eclipse + Android SDK + NDK dolgokat. ARM procis droidot tudok is emulálni, Inteles nem indul el (hardware acceleration baja van, a HAXM meg nem megy fel, AMD proci). Egyelőre még nem látom, hogy hogy fogom tudni szépen összeegyeztetni a dolgokat, de majdcsak lesz vele valami.

   
Parallax - Tag | 603 hsz       Online status #205905   2014.12.28 19:56 GMT+1 óra  
A QT-t én is kipróbáltam, 100%-ban C/C++ kóddal lehet nem csak GL, hanem hagyományos üzleti programokat is írni. Generál is rendesen egy apk-t, fut szépen mindenen, debuggolható is normálisan a program. Egyedül az zavar, hogy a QT egy bazinagy framework, igazából ennek kb az 1%-ára van csak szükség játékhoz, ráadásul minden egyes platformhoz fel kell tenni külön-külön. Android studio mi másra, mint java-ra van kihegyezve még szerintem jópár év mire normálisan támogatja helyből a C++ projektet is. VS2015 RTM-re várok, ha nem válik be, akor marad a QT, jni-vel NDK-val magában nem fogok szenvedni, ha nem muszáj.

   
LBandy - Tag | 271 hsz       Online status #205902   2014.12.28 14:52 GMT+1 óra  
Android-ra első natív projektet összerakni elég kínszenvedés.

A struktúrát illetően, ha idővel elérsz a klasszikus szerkezethez, úgy jni/ alá kerül majd a natív kód, és az src-be a java.

Én azt javaslom, hogy fogj egy olyan libet, amiben eleve benne van a glue kód meg a framework megy androidon (pl SDL, vagy cocos2dx, csakhogy kettőt említsek, amiket én használtam), itt meg tudod nézni azt a 2-3 filet, ami elintézi a "magic" részeket, aztán ezeket átemelve, vagy ezek alapján megírva a saját jni-bindinget már tudsz majd haladni. Szerintem vaktában, saját kútfőből kitalálni, hogy hogyan tudsz a java által nyitott opengl contextbe c++-ból renderelni elég időigényes feladat lenne.
   
Eldor - Tag | 163 hsz       Online status #205898   2014.12.27 15:07 GMT+1 óra  
Sajnos nincs összehasonlítási alapom a Visual Studioval, vagy az Android Studioval, szóval azt nem tudom megmondani, hogy mennyivel lenne könnyebb QtCreator-ral belőni.

Annyit tudok elmondani, hogy szerintem nagyon könnyű. Qt-s ablakkezelést használva, OpenGL-lel nálam minden rögtön elsőre működött.

   
Instalok - Tag | 576 hsz       Online status #205893   2014.12.26 10:46 GMT+1 óra  
Találtam egy egész jó kis könyvet ezzel kapcsolatban, viszont nem tudom összerakni a fejlesztőkörnyezetet. Először kezdtem azzal, hogy leszedtem az Android Studiot, de ahhoz sehogy sem tudtam belőni az NDK-t, ráadásul elég más a projektstruktúra is.

Jelenleg visual studiot használok, de a projektstruktúrám direkt úgy van kialakítva, hogy el van különítve a tényleges project és a forráskód, valami ilyesmi:
Kód:
inc/
proj/
src/

Ahol a proj folderen belül vannak a visual studio-related fájlok.

Programozás szempontjából úgy néztem, hogy nem lenne olyan vészes, nagyjából azokat kellene csak megírni, amiket eddig is sejtettem (application, graphics device, input, meg később audio, de az most még egyáltalán nincs).

Én vagyok csak ennyire béna, hogy nem tudom összeegyeztetni a dolgokat, vagy van valami egyszerűbb mód? Eldor említette a Qt-t, azt sem ismerem, azzal esetleg könnyebb lenne?

További probléma volt, hogy AMD procim van, és amikor egy sample applicationt el akartam indítani, hiányolta a HDXM nevű csodát, ami valami Inteles Hardware Accelerated akármi. A packaget leszedtem hozzá, de feltelepíteni nem tudtam.

   
Instalok - Tag | 576 hsz       Online status #205829   2014.12.15 09:55 GMT+1 óra  
Hát igen, a másik gondom a vs 2008 hiánya lesz. Egyébként a platformspecifikus dolgok nekem is külön vannak szedve, pontosabban nekem is van egy interface, és a megfelelő leszármazott osztály típusúval hozom létre. Pont ezekkel kapcsolatban kerestem volna valami gyűjteményt, ami összeszedi, hogy mire kell figyelni ezekkel kapcsolatban.

   
Parallax - Tag | 603 hsz       Online status #205826   2014.12.15 04:13 GMT+1 óra  
@Instalok
Leírás nem nagyon van, viszont open source engine-ek kódját meg lehet nézni. (pl Ogre). Ha megfelően megtervezted a motort, minden alrendszernek van megfelelő interfésze, platformfüggetlen részek össze vannak gyűjtve és csak a platform specifikus részekhez van 1-1 leszármaztatott osztály, akkor nem kell semmit átforgatni, csak hozzáadni platformonként egyet. Nálam render rész mobilon és win32-őn is teljesen ugyanaz, igaz én ES 1.1-et használok és 2D játékhoz. Render ablakhoz az input-hoz és az audio-hoz van külön-külön leszármaztatott implementáció és ennyi. A script, textúra betöltő, core (kollekciók, math stb) változatlan. Hosszabb távon érdemes megnézni a Visual Studio 2015-öt, ha amúgy is VS-el készül a win változat, mert ott van Android és később iOS támogatás is lesz, így még a fejlesztői eszközt se kell cserélgetni.

   
Eldor - Tag | 163 hsz       Online status #205820   2014.12.14 09:32 GMT+1 óra  
En ilyen leirasrol nem tudok, nem is hiszem, hogy letezik, de persze nem jartam utana a dolgoknak.

Ahhoz, hogy Androidon mukodjon a kodod, tisztaban kell lenned az altalad hasznalt OpenGL verzio es az OpenGL ES kozti kulonbsegekkel. A forditashoz Qt-t, valamint QtCreator-t javaslok. En ezeknek az eszkozoknek a segitsegevel ugyanazt a projektet (majdnem ugyanazt a forraskodot (nehany #ifdef van benne)) tudom forditani Windowsra, Linuxra es Androidra is. Persze futtatni is tudom ezeken a rendszereken a programot.

   
Instalok - Tag | 576 hsz       Online status #205819   2014.12.14 08:53 GMT+1 óra  
Van valami jó anyag valahol arról, hogy egy c++, OpenGL enginet hogy lehet átforgatni úgy, hogy androidos tableten is fusson? Nyilván figyelni kell majd arra, hogy OpenGL ES, meg ablakkezelés, stb., de pont ezekre lennék kíváncsi, hogy valahol össze van-e gyűjtve, toolokkal együtt?

szerk.:
Mivel egyelőre nincs készülék, amin tesztelnék, ezt néztem első sorban, mint emulátort.

Ezt a hozzászólást Instalok módosította (2014.12.14 09:02 GMT+1 óra, ---)

   
Instalok - Tag | 576 hsz       Online status #205777   2014.12.09 17:37 GMT+1 óra  
Valószínűleg támogatja, csak meg kell írni.

   
peti634 - Tag | 148 hsz       Online status #205776   2014.12.09 16:52 GMT+1 óra  
SSE, és hasonló utasításokat nem támogatja a fordító, ha bekapcsolom?
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Instalok - Tag | 576 hsz       Online status #205774   2014.12.09 08:19 GMT+1 óra  
Hogy teljesen pontosak legyünk, az egy c++ kódba ágyazott assembly kód. Nem véletlenül van ám ott az a rész, amely megjelöli, hogy itt asm kód található:
Kód:
__asm
{
    [...]
}

Egyébként ilyen jellegű feladatoknál SSE-vel érdemes próbálkozni, amihez viszont sajnos ilyesmiket kell írogatni.

   
Nomad - Tag | 4 hsz       Online status #205773   2014.12.09 05:55 GMT+1 óra  
az assembly kódon meg - ha geri jól mondja, hogy az - nem olyan sokat lehet optimalizálgatni a fordító részéről - szerintem

   
Parallax - Tag | 603 hsz       Online status #205772   2014.12.09 04:38 GMT+1 óra  
Idézet
versio :
nade amit a c++ fordito lefordit az c++ kod


Pontosabban az a C++ kód, amit minden fordítóval az általuk támogatott platformokra le lehet fordítani. Amit írtál azt maximum VC++x86-nak lehetne nevezni. Egy VS15-ös Native Activity (Android) projektbe behúzva már elbukna az egész.

   
Geri - Törzstag | 2194 hsz       Online status #205771   2014.12.09 01:32 GMT+1 óra  
amit a macskám megeszik, az macska. vagy C, vagy assembly...

   
versio - Tag | 673 hsz       Online status #205770   2014.12.09 01:27 GMT+1 óra  
nade amit a c++ fordito lefordit az c++ kod
   
Geri - Törzstag | 2194 hsz       Online status #205769   2014.12.09 01:21 GMT+1 óra  
igen, mert a c++ fordítóban van assembler, ami lefordítja az assembly kódot....

   
versio - Tag | 673 hsz       Online status #205768   2014.12.09 01:19 GMT+1 óra  
nem ez c++ kod, beteszem a visual studioba es leforditja
   
Geri - Törzstag | 2194 hsz       Online status #205767   2014.12.09 01:17 GMT+1 óra  
nem, ez x86 assembly kód...

   
versio - Tag | 673 hsz       Online status #205766   2014.12.09 01:14 GMT+1 óra  
nekem c++ kodnak tunik az amit linkeltem, es optimizalt is
   
Geri - Törzstag | 2194 hsz       Online status #205765   2014.12.09 00:09 GMT+1 óra  
versio, az nem optimizált kód volt, hanem assembly kód volt, ez meg a c++ topik.

nomad: x86on a 8, 32, és 64 bites számok is hardverből támogatva vannak. (az utóbbi jobbára csak 64 biten)
más platformokon a hardveres szóméretet érdemes mindenhol használni. a dupla címfordítást kiírthatod a ciklusból, pl:

float * valami=cica->valamitomb;

for(...)
..
valami[..]..
}
}

   
versio - Tag | 673 hsz       Online status #205764   2014.12.08 23:58 GMT+1 óra  
igy van, nemerdemes optimizalni plane ugy hogy az embernek nincsenek low level ismeretei, mukodjon oszt csa
   
peti634 - Tag | 148 hsz       Online status #205763   2014.12.08 22:19 GMT+1 óra  
szerintem csak azt akarják mondani hogy valószínűleg a fordító sokkal nagyobb optimalizációt fog csinálni (ha bekapcsolod, főleg az L3-at), mint te bármit írsz.
Értsd:
Nem számít, hogy te így írod a for-t vagy úgy, vagy while, stb...

Szerintem a lényeg ott van, hogy maga az elmélet jó legyen, azután már valahogy programozd le, csak működjön.
De ez csak az én véleményen
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Nomad - Tag | 4 hsz       Online status #205762   2014.12.08 18:12 GMT+1 óra  
versio
mielott meg beleelned magad abba hogy tudsz optimizalni

nem éltem bele magam, csak egy kicsit
versio
megmutatom hogy nez ki egy optimizalt kod, amit a microsoftnal keszitenek

hát... az első 4 és az utolsó 2 sort értem belőle
de tőlem (pár hónap hobby programozás után) ne is várja el senki, hogy értsem, ezt meghagyom a versio féle nagy okos embereknek
na mindegy köszi az okosítást ) neked is LBandy

szerk.: a "nagy okos" kifejezést ne egybe olvassátok (mert versio tényleg elég okos)

   
LBandy - Tag | 271 hsz       Online status #205761   2014.12.08 17:55 GMT+1 óra  
Csak hogy "trollkodás" mellett értelmes válasz is legyen itt: nem gyorsabb.
   
versio - Tag | 673 hsz       Online status #205760   2014.12.08 17:18 GMT+1 óra  
mielott meg beleelned magad abba hogy tudsz optimizalni, megmutatom hogy nez ki egy optimizalt kod, amit a microsoftnal keszitenek

Kód:
// Find the cross product of two constant vectors and return it.
Vector4 SSE_CrossProduct(const Vector4 &Op_A, const Vector4 &Op_B)
{
        Vector4 Ret_Vector;
        __asm
        {
                MOV EAX Op_A                               // Load pointers into CPU regs
                MOV EBX, Op_B

                MOVUPS XMM0, [EAX]                 // Move unaligned vectors to SSE regs
                MOVUPS XMM1, [EBX]   
                MOVAPS XMM2, XMM0               // Make a copy of vector A
                MOVAPS XMM3, XMM1               // Make a copy of vector B

                SHUFPS XMM0, XMM0, 0xD8      // 11 01 10 00  Flip the middle elements of A
                SHUFPS XMM1, XMM1, 0xE1       // 11 10 00 01 Flip first two elements of B
                MULPS  XMM0, XMM1                 // Multiply the modified register vectors
               
                SHUFPS XMM2, XMM2, 0xE1      // 11 10 00 01 Flip first two elements of the A copy
                SHUFPS XMM3, XMM3, 0xD8     // 11 01 10 00  Flip the middle elements of the B copy
                MULPS XMM2, XMM3                 // Multiply the modified register vectors
               
                SUBPS  XMM0, XMM2                  // Subtract the two resulting register vectors
               
                MOVUPS [Ret_Vector], XMM0      // Save the return vector
        }
        return Ret_Vector;
}
   
Nomad - Tag | 4 hsz       Online status #205759   2014.12.08 17:10 GMT+1 óra  
Sziasztok!
Elkezdtem pár matematikai osztály kidolgozását 3d-s grafikához (vektor, mátrix, stb.). A célom az lenne, hogy minél gyorsabb legyen a kód.
Nos az lenne a kérdésem, hogy bizonyos for ciklusok, melyen nem futnak le 256-nál többször, pl
Kód:
inline void ClearMatrix4x4(const Matrix4x4& mat)
{
          for(int i=0;i<4;i++)
                     for(int j=0;j<4;j++)
                               mat.m[i][j]=0;
}

gyorsabbak-e unsigned char használatával és ha gyorsabbak mennyivel:
Kód:
inline void ClearMatrix4x4(const Matrix4x4& mat)
{
          for(unsigned char i=0;i<4;i++)
                     for(unsigned char j=0;j<4;j++)
                               mat.m[i][j]=0;
}

   
Asylum - Törzstag | 5471 hsz       Online status #205613   2014.11.24 10:06 GMT+1 óra  
Akkor fejlődne a nyelv, ha az ilyen dolgokat amiért megkövezés jár kibasznák már végre (a.k.a. visszafelé kompatibilitás). Persze, nagy hőbörgés lenne miatta, de kevésbé lehetne hülye kódokat írni. Csak az meg már nem C++ Úgyhogy nekem a C++98 marad örökre, nem fogok semmi újdonságot használni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 576 hsz       Online status #205601   2014.11.24 07:28 GMT+1 óra  
Engem a legtöbb dolog az inkább zavart a c++11ben sajnos. Ott van például az auto, attól a falra tudok mászni. shared_ptr és társaitól szintén, ha ilyet akarok, akkor programozok c#-ban.

Ami tetszett:
- foreach jellegű ciklus
- override kulcsszó
- delete kulcsszó függvényekhez
de ezek is inkább kényelmi funkciók, minden megoldható ezek nélkül is. Itt összeszedtek 10 dolgot, ami elvileg nagyon jó, de ezek közül igazából egyik sem hiányzik.

No persze kinek a pap, kinek a paplan.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [142]