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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2198
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] > 38 < [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [143]
Kuz - Törzstag | 4455 hsz       Online status #151618   2011.05.06 14:12 GMT+1 óra  
Ez most tisztára olyan, mitn a C# garbage collectora, ami nem determinisztikusan fut (ugye így mondják?), és max akkor látsz dispose után memória felszabadítást, ha a GC.Collect-et is meghívod.
Amúgy win alatt kb minden valamilyen módon cache-elődik, ezért van az, hogy ha megnyitsz egy nagy képet, aminek a megnyitása pl 2-3 mp-et igénybe vesz először, majd kilépsz a képnézegetőből, aztánmegint megnyitod, általában nem nagyon van várakozási idő.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
bit.0x8000 - Törzstag | 574 hsz       Online status #151617   2011.05.06 13:57 GMT+1 óra  
Nem lehet, hogy az OS-nek van valami saját szemétgyűjtő algoritmusa?
   
Dookle - Tag | 478 hsz       Online status #151612   2011.05.06 12:51 GMT+1 óra  
Hali ! Lenne egy kérdésem amire sok keresgélés után sem találtam kielégítő választ :
Memory Leak...

Igazából az érdekelne hogy pl task manager-ben figyelve a progit lehet-e helyes konklúziót levonni ? Mert például létrehozok 20 darab objektumot , és törlöm őket , 3 dolog szokott történni

1. Task manager visszaáll arra az értékre mielőtt az objektumok létre lettek hozva
2. Törlés után nem történik semmi , de ha létrehozok újabb 20 objektumot , akkor sem történik semmi csak ha létrehozom a 21.-et akkor ismét elkezdi növeli az elfoglalt memória területet.
3 . Törli az objektumokat de nem áll vissza teljesen a kezdő értékre (Mintha csak egy részét törölné , és utánna megint létre hozhatok pár objektumot mire ismét elkezdi növelni az elfoglalt memória területét) .

És ezeket csinálja randomra.Sohasem tudom előre melyik fog bekövetkezni

Félek hogy ez memory leak , de az engine amit használok smart pointereket használ így elvileg ki van zárva a memory leak veszélye (A fejlesztője is ezt mondja).
Még mielőtt valaki VC++ hoz javasolna valami leak detectort , szólok hogy dll-t fordítok így nem hiszem hogy ez a hasznomra válhat.

A segítséget előre is köszi.

PS: Ha DBProban írok egy hasonló tesztet objektekkel akkor is ugyan ez történik (fentebb említett 3 lehetőség) , pedig állítólag dbp-ben már nincs mem leak...
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Orphy - Törzstag | 1893 hsz       Online status #151498   2011.05.02 15:47 GMT+1 óra  
Skacok, C++ topic...
   
Asylum - Törzstag | 5511 hsz       Online status #151494   2011.05.02 15:35 GMT+1 óra  
Dehogynem, addig nyalnám Jessicát amig el nem élvez Meg van oldva a vizszükséglet
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
terbed - Tag | 233 hsz       Online status #151493   2011.05.02 15:33 GMT+1 óra  
Jó a c++ megfelelő dolgokhoz megfelelően használva és jó a c# megfelelő dolgokra megfelelően használva. Neked lefordítva jó Jessica megfelelő dolgokhoz megfelelően használva és jó a szar is megfelelő módon megfelelően használva. Pl. gondolj bele a sivatagban kiszáradva nem mész sokra Jessicával de egy finom nagy elefántkakinak megörülnél ami caftos zaftot tartalmaz.
   
Asylum - Törzstag | 5511 hsz       Online status #151490   2011.05.02 15:16 GMT+1 óra  
Úgy kell ehhez hozzáállni, hogy ami jó a c#-ban azt a c++-ból lopta, ami rossz az meg microsoft.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
terbed - Tag | 233 hsz       Online status #151487   2011.05.02 15:12 GMT+1 óra  
Igen és az alapértelmezett konstruktor pedig beállítja az értékeket alapértelmezettre (legalábbis c#-ban, de gondolom nincs ez máshogy c++-ban sem)
   
proof88 - Törzstag | 530 hsz       Online status #151485   2011.05.02 15:09 GMT+1 óra  
lehet, olyanolyan mintha akármilyen más metódust hívnál meg. Asylum kifejtette egyébként vmelyik nap hogy a memóriafoglalásnak egyébként sincs köze a konstruktorhoz, mert független. A konstruktor csak lefut miután a memória le lett foglalva az objektumnak. Abban a te kódod van.
   
Asylum - Törzstag | 5511 hsz       Online status #151483   2011.05.02 15:05 GMT+1 óra  
Mért ne lehetne??

Kód:
class Apple
{
public:
    Apple(int i) {
        Apple(i, "");
    }

    Apple(const std::string& name) {
        Apple(0, name);
    }

    Apple(int i, const std::string& name) {
        std::cout << "Apple::Apple(" << i << ", " << name << ")\n";
    }
};
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #151477   2011.05.02 14:21 GMT+1 óra  
Nem lehet, de ennek még sok hátrányát nem éreztem
(ಠ ›ಠ) Stewie!

   
terbed - Tag | 233 hsz       Online status #151469   2011.05.02 13:57 GMT+1 óra  
Úgy hallottam, hogy c++-ban nem lehet a konstruktorokat láncolni. Ez igaz?
Tehát erre gondolok, C#-ban:
Kód:
        public Motorcycle(int intensity)
            :this(intensity,""){}

        public Motorcycle(string name)
            :this(0,name){}

        public Motorcycle(int intensity, string name)
        {
            if (intensity > 10)
            {
                intensity = 10;
            }
            driverIntensity = intensity;
            driverName = name;
        }

Ugye az 1. és 2. konstruktor csak a 3. konstruktor megfelelő részét futtatja le.
   
fpeti - Törzstag | 1295 hsz       Online status #151231   2011.04.26 00:02 GMT+1 óra  
Hátha valakinek hasznos (win32):
WM_KEYDOWN-nál pl a lparam-mal le lehet ezzel kérdezni a lenyomott bill. nevét:
(keyboard remapping-nál jól jön.)
Kód:
GetKeyNameText(lparam,otuputstr,strmaxlen);

forrás: GameDev
   
Wolfee - Törzstag | 1337 hsz       Online status #150932   2011.04.20 19:10 GMT+1 óra  
jó, ez már kezd szakmai f*szverésbe átmenni, amikor mindenki érti, hogy miről van szó, csak a szavakon lovagolunk
FZoli jóváhagyásával XD

   
Pretender - Törzstag | 2498 hsz       Online status #150928   2011.04.20 18:25 GMT+1 óra  
én beírtam a google-ba, hogy c++ constructor, és ott volt persze nem olvastam el, csak belenéztem a példakódba, és hát az úgy működik

   
Joga - Törzstag | 1791 hsz       Online status #150925   2011.04.20 17:27 GMT+1 óra  
default konstruktor alatt valószínüleg paraméter nélküli konstruktort ért

"A default constructor is a constructor that either has no parameters, or if it has parameters, all the parameters have default values."
"In C++, the standard describes the default constructor for a class as a constructor that can be called with no arguments"

Így ezeket találtam
(ಠ ›ಠ) Stewie!

   
Asylum - Törzstag | 5511 hsz       Online status #150924   2011.04.20 17:07 GMT+1 óra  
Ezexerint szintén baromságot ir, mert a másik sorban a copy konstruktor hivodik meg; amit ha explicit nem adsz meg akkor szintén legenerálódik, tehát az is default (copy) konstruktor.

Annyira szeretem hogy a net televan ilyen ál-szakmai cikkekkel. Hogy találjátok meg ezeket?

Egyáltalán mi az, hogy "our default constructor"? Ez olyan mintha azt mondanám, hogy "az én fordító által generált konstruktorom"...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Bálint - Tag | 30 hsz       Online status #150923   2011.04.20 16:52 GMT+1 óra  
Most már világos, csak a példakód zavart be
Kód:
Point p;              // calls our default constructor
Point s = p;          // our default constructor not called.

   
Asylum - Törzstag | 5511 hsz       Online status #150922   2011.04.20 16:34 GMT+1 óra  
Mégegyszer mondom, hogy NEM A KONSTRUKTOR FOGLALJA A MEMÓRIÁT!

Kód:
myclass obj;


Ebböl valami ilyesmi forditodik:

Kód:
sub ESP, sizeof(myclass)  ; <--- ez a memóriafoglalás
call myclass()


Mig dinamikus memoriakezeléssel:

Kód:
myclass* pobj = new myclass();


Lesz ez:

Kód:
try{
    myclass* pobj = (myclass*)operator new(sizeof(myclass));
    pobj->myclass();

    // ...
}
catch{ ... };


According to gsd.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #150921   2011.04.20 16:22 GMT+1 óra  
Asylum abba kötött bele, ha az osztály egyik tagja is osztály, akkor a default konstruktor annak a tagnak meghívja a default konstruktorát
(ಠ ›ಠ) Stewie!

   
Bálint - Tag | 30 hsz       Online status #150920   2011.04.20 15:59 GMT+1 óra  
"If no constructor is defined, C++ invokes a default constructor, which allocates memory for the object, but doesn't initialize it."
Ha nincs konstruktor definiálva (a fordító nem talál definiált konstruktort), akkor a C++ egy default konstruktort hív meg, amely az objektum számára lefoglalja a memóriát, de nem inicializálja.

Szerintem helyes, mert a default konstruktor alapból nem állítja 0-ra a változókat, azt nekünk kell megcsinálni. A memória lefoglalása meg akkor történik meg, ha meghívódik a konstruktor, tehát a konstruktor foglalja le a memóriát. Persze bele lehet kötni, hogy nem a konstruktor végzi el, hanem a számítógép. Vagy rosszul tudom?

Ezt a hozzászólást Bálint módosította (2011.04.20 16:04 GMT+1 óra, ---)

   
Pretender - Törzstag | 2498 hsz       Online status #150918   2011.04.20 14:48 GMT+1 óra  
én csak a kódot néztem :$

   
Wolfee - Törzstag | 1337 hsz       Online status #150916   2011.04.20 13:59 GMT+1 óra  
Idézet
Asylum :
De arra nyilván ne értse, mert nem igaz!
Például ha van egy Vector2 tipusu member aminek van default konstruktora (és az mondjuk 0-ra állitja), akkor az garantáltan meghivodik.
POJO-kra igaz lehet, de ö általánosságban beszél a konsturktorrol.


de primitív típusokra nyilván igaz.
FZoli jóváhagyásával XD

   
Asylum - Törzstag | 5511 hsz       Online status #150911   2011.04.20 13:05 GMT+1 óra  
De arra nyilván ne értse, mert nem igaz!
Például ha van egy Vector2 tipusu member aminek van default konstruktora (és az mondjuk 0-ra állitja), akkor az garantáltan meghivodik.
POJO-kra igaz lehet, de ö általánosságban beszél a konsturktorrol.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Wolfee - Törzstag | 1337 hsz       Online status #150910   2011.04.20 13:03 GMT+1 óra  
Idézet
Asylum :
Idézet
Pretender :
Nekem így működik
http://www.fredosaurus.com/notes-cpp/oop-condestructors/constructors.html



Már az elsö mondata baromság. A konstruktor nem foglal memóriát. És az is baromság hogy nem inicializál, mert a memberek default konstruktorai meg lesznek hivva.


a nem inicializálást nyilván arra értette, hogy memóriaszemét lesz benne.
FZoli jóváhagyásával XD

   
Asylum - Törzstag | 5511 hsz       Online status #150908   2011.04.20 12:52 GMT+1 óra  
Idézet
Pretender :
Nekem így működik
http://www.fredosaurus.com/notes-cpp/oop-condestructors/constructors.html



Már az elsö mondata baromság. A konstruktor nem foglal memóriát. És az is baromság hogy nem inicializál, mert a memberek default konstruktorai meg lesznek hivva.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #150902   2011.04.20 08:44 GMT+1 óra  
Tegnap Asylum mesterrel megoldottuk (igazából megoldotta ) a problémát. Meg ilyen totál alap dolgokat nem kérdezek meg, pláne miután átolvastam Asy tutorialját az osztályokról, .cpp/.h-ekről.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Pretender - Törzstag | 2498 hsz       Online status #150899   2011.04.20 05:56 GMT+1 óra  
Joga - Törzstag | 1791 hsz       Online status #150898   2011.04.20 04:38 GMT+1 óra  
Akkor mondjad, hogy hogyan próbálkozol, mi meg segítünk
(ಠ ›ಠ) Stewie!

   
Kuz - Törzstag | 4455 hsz       Online status #150894   2011.04.19 23:05 GMT+1 óra  
Irigylem a problémáitokat. Én meg küszködhetek a konstruktor írással, mert úgy nem megy, ahogy a tutorialokban.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Asylum - Törzstag | 5511 hsz       Online status #150892   2011.04.19 22:45 GMT+1 óra  
Látom buli volt
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #150890   2011.04.19 19:45 GMT+1 óra  
Há' montuk mi a déinputot má' mikó'..
Meg mijaz hogy nem fejlődött a déiksz8 óta? Mé', van új déiksz? Na, én helyben vagyok..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Pretender - Törzstag | 2498 hsz       Online status #150882   2011.04.19 13:14 GMT+1 óra  
oké, nem fejlődik. De mi a baj vele? rendesen kezeli az egeret, a billentyűzetet. Az xinputot nem ismerem, de megnézem majd azt is, mindenesetre attól, hogy nem fejlődik, még működik.

   
Asylum - Törzstag | 5511 hsz       Online status #150873   2011.04.19 06:57 GMT+1 óra  
Talán mert a dx8 óta semmit nem fejlödik?
Át fogok térni xinputra, csak jelenleg nincs idöm még ezzel is kisérletezni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #150872   2011.04.19 06:16 GMT+1 óra  
hát ez aztán egy érv...

nekem tökéletesen működik, eddig bárkinek küldtem a cuccomat, ott is tökéletesen működött. Nem értem, hogy igazából mit kell szopni a szarabb megoldással, ha már egy ideje van egy egyszerűbb és jobb?

   
Joga - Törzstag | 1791 hsz       Online status #150871   2011.04.19 06:01 GMT+1 óra  
Idézet
Asylum :
Igen, directinput kéne, de enyhén szolva lejárt lemez már. Kell hogy legyen vmi értelmes megoldás winapihoz is. Pl. ugy helyezni a kurzort a képernyö közepére hogy a WM_MOUSEMOVE-ot ne hivja meg.

(ಠ ›ಠ) Stewie!

   
Pretender - Törzstag | 2498 hsz       Online status #150870   2011.04.19 05:55 GMT+1 óra  
továbbra sem válaszolt senki, hogy miért is nem jó a dinput.

   
Asylum - Törzstag | 5511 hsz       Online status #150867   2011.04.19 00:14 GMT+1 óra  
Van, 5 perc alatt integráltam a dinputot.
Igazábol most már jobb lenne az xinput...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #150866   2011.04.18 23:26 GMT+1 óra  
Jobb ötlet?
   
Asylum - Törzstag | 5511 hsz       Online status #150865   2011.04.18 23:22 GMT+1 óra  
Az ugyanaz mint a dinput...söt igazábol nem tudom h mennyire lesz ez jo megoldás mert szerintem a winapis egér fix idöközönként nézi az egeret, mig a dinputnál általában framenként szokás...persze azt is meg lehet oldani fixed timestep-el csakhát...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #150864   2011.04.18 23:11 GMT+1 óra  
Olyasmire gondolok, hogy nem foglalkozol a message queue-vel, hanem te kéred le az egér aktuális állapotát a kód megfelelő részén...
   
Asylum - Törzstag | 5511 hsz       Online status #150863   2011.04.18 23:05 GMT+1 óra  
Az alatt mit értesz? Azt nem tudom befolyásolni, hogy mi és milyen sorrendben kerül a message queue-be..szerintem azlesz a vége h mégis dinputttal csinálom meg...lehet h nálam müködik most, de máshol már nem biztos...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #150862   2011.04.18 22:43 GMT+1 óra  
Ha jól értelmeztem, event alapon próbálod megoldani. Ha esetleg átírnád úgy a kódot, hogy poll-szerűen működjön?
   
Asylum - Törzstag | 5511 hsz       Online status #150861   2011.04.18 18:11 GMT+1 óra  
Idézet
TomX :
SetCursorPos után rögtön föl kéne dolgozni az üzeneteket.



Szerintem az van, hogy mikor kiadom a setcursorpos-t, akkor az üzenet bufferben már vannak elötte mousemove üzik (ezért nem jo a globális változo). Söt szerintem ez az extra infós megoldás is olyan mint egy globális változo (és tényleg, mert bizonyos helyzetkben ezzel is rosszul müxik).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5511 hsz       Online status #150857   2011.04.18 12:33 GMT+1 óra  
Nem tudom, igazábol már elegem van a winapibol; még a legegyszerübb dolgokhoz is hackelni kell.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
TomX - Törzstag | 223 hsz       Online status #150854   2011.04.18 10:01 GMT+1 óra  
Nem lehet, hogy a message feldolgozással nem stimmel valami?

SetCursorPos után rögtön föl kéne dolgozni az üzeneteket.

Driver szintű programban is használtam már SetSursorPos-t 2 egérrel fölváltva és gond nélkül ment.

Annyira nem hülye a winapi Amint meghívod a SetCursorPos-t azonnal megjelenik a message, csak föl kell dolgozni.
   
Pretender - Törzstag | 2498 hsz       Online status #150850   2011.04.18 05:09 GMT+1 óra  
miért elavult a dinput? én azt használok, és rohadtul nincsenek ilyen problémáim (sőt, semmilyenek) Én nem bíznám magam a winapira, és tényleg nem értem, hogy miért lenne elavult, de biztos ti tudjátok

   
Asylum - Törzstag | 5511 hsz       Online status #150845   2011.04.17 23:52 GMT+1 óra  
Találtam egy ilyet:

http://msdn.microsoft.com/en-us/library/ms646310%28v=vs.85%29.aspx

Most probálom h mit tud, igazábol müködik csak ööö....nem egészen jo igy se...

Hát persze, ez se jó...például ha az alábbi sorrend áll fent:

elmozdul 10-hez // lastx = 10
sendinput(50) // lastx = 50
elmozdul 30-hoz

Most képzeljük el, hogy az utolso üzi (elmozdul 30hoz) a setcursorpos és a setcursorpos::mousemove között fut le (megcseréli a két üzit). És pont ez történik...hát a jó életbe...

A MOUSEEVENTF_MOVE_NOCOALESCE flag segit rajta egy picit de még mindig nem százas..
ui.: postolom a gpmhez.

thx mindenkinek a helpet

Ezt a hozzászólást Asylum módosította (2011.04.18 01:02 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
TomX - Törzstag | 223 hsz       Online status #150844   2011.04.17 23:33 GMT+1 óra  
Értem.

Akkor marad HomeGnome első megoldása. Annál elvileg nincs ilyen gond.
Annyi hogy nem framenként hívod a CursorPos-t hanem minden MOUSE_MOVE-nál, és kivéded a rekurziót.
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #150843   2011.04.17 23:01 GMT+1 óra  
Vagy talán mert nem FPS-re lett kitalálva, sztem már a Wolfenstein3D előtt is így működhetett a winapi..
Na még egy utolsó tipp:
Kód:
"relatív elmozdulás számítása ÉS hozzáadása dX dY változókhoz";

// render()-ben:
dX=dY=0;
SetCursorPos("középre");

Ennyire futotta tőlem, sry, feladom..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] > 38 < [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [143]