07-06-2007, 21:06
|
|
|
חבר מתאריך: 13.07.06
הודעות: 1,070
|
|
כמה דברים:
בתגובה להודעה מספר 1 שנכתבה על ידי eXtruct שמתחילה ב "מחלקה שמשתמשת במחלקה אחרת. הררכיה של מחלקות במנוע גרפי?"
קודם כל: תערוך מהר את ההודעה שלך ותיישר הכל נכון כדי שהיא תהיה קריאה. כדי לעשות זאת קודם הצמד הכל לימין, ואז בחר את קטע הקוד והצמד אותם לשמאל.
ולשאלה שלך, אין שום בעיה בקוד נוסח:
קוד PHP:
GraphicsDevice gd(mySDLSrrface); Rectangle rct(x,y,length,height); DrawableRectangle drct(rct,gd); drct.draw();
כש-DrawableRectangle::draw הוא:
קוד PHP:
void DrawableRectangle::draw() { m_gd.drawRect(x,y,length,height); }
כש-GraphicsDevice::drawRect היא בעצמה משהו כמו:
קוד PHP:
void GraphicsDevice::drawRect(x,y,length,height) { Draw_Line(m_SDLSurface,x,y,x+length,y,cBlack); Draw_Line(m_SDLSurface,x,y+height,x+length,y+heigh t,cBlack); Draw_Line(m_SDLSurface,x,y,x,y+height,cBlack); Draw_Line(m_SDLSurface,x,y+height,x+length,y+heigh t,cBlack); }
כן. יש כאן כמה level of indirection, אבל זה לא כל כך רציני, ו-optimizing compiler טוב
עשוי לטפל אפילו בבעיות הקטנות שנוצרות. אם הפונקציות וירטואליות, כמובן, הן וירטואליות,
ולא יעזור כלום. ועדיין, עוד פקודה עד שתי פקודות אסמבלי בכל קריאה לפונקציה וירטואלית.
אפשר לשרוד את זה.
חוץ מזה, תנסה ותראה. אם לא תרגיש פגיעה בביצועים בעין, כנראה שאין...
_____________________________________
סאשה הסוס, סוכן אוסינט.
|