Как осуществляется доступ к текстуре2д?
Если я загружаю текстуру в какую-то переменную, а потом присваиваю её ещё нескольким, то я получаю несколько копий её в памяти, или всё-таки они по человечески ссылками на одну и ту же структуру данных обойдутся, извините?
Ты даёшь команду создать 2Д текстуру.
Что делает XNA:
Копирование структуры текстуры если и разрешено (я не пробовал), то скопирует эти вот служебные поля, зона в видеопамяти останется той же. Если тебе надо сделать полную копию текстуры, создавай новую с тем же размером и вызывай что нибудь вроде CopyRects из старой в новую (не уверен как эта функ. называется в XNA).
yaapelsinko
> Если я загружаю текстуру в какую-то переменную, а потом присваиваю её ещё
> нескольким, то я получаю несколько копий её в памяти, или всё-таки они по
> человечески ссылками на одну и ту же структуру данных обойдутся, извините?
Тут дело не в незнании XNA а в незнании C#. Есть такая штука в C#, называется "ссылочный тип данных". Класс является ссылочным типом данных.
Если мы напишем так:
class Omg { public int A = 100; } Omg f1 = new Omg(); Console.WriteLine( f1.A.ToString( )); //выведится значение 100 а теперь Omg f2 = f1; f2.A = 666; Console.WriteLine( f1.A.ToString( )); //выведится значение 666
Мы изменили "f2" а значение поменялось у "f1"
Тоесть ты ни чего не копируешь! Раздаёшь ссылки.
Ну если два раза вызвать контент.лоад<текстуре2д>(одно и то же имя файла), то наверно тоже копия получится?
Энивей, чего-чего, а копировать мне как раз и не надо. Я наоборот волнуюсь, как бы у меня сотня спрайтов с полями типа Texture2D не забило своими одинаковыми текстурами всю память. Стало быть, не забьёт. =)
yaapelsinko
> Ну если два раза вызвать контент.лоад<текстуре2д>(одно и то же имя файла), то
> наверно тоже копия получится?
да
.L
> yaapelsinko
> > Ну если два раза вызвать контент.лоад<текстуре2д>(одно и то же имя файла), то
> > наверно тоже копия получится?
> да
нет! ContentPipeline не сделает копию. если нужна копия, то грузи через Texture2D.FromFile
.L
Вот бы знать, где у текстуре2д написано, ссылочный он тип или значащий.
yaapelsinko,
In C#, classes and structs are semantically different. A struct is a value type, while a class is a reference type.
класс - всегда ссылочный тип в шарпе.
Может сначала ознакомится с C# стоит?
yaapelsinko
> Вот бы знать, где у текстуре2д написано, ссылочный он тип или значащий.
уже ответили
Ps-spectre
> A struct is a value type, while a class is a reference type.
текстура это класс. Если ты не можешь догадаться класс это или нет - можешь сделать НАПРИМЕР так: клацаешь правой кнопкой мыши по "текстуре2д" (как там у вас тип называется) и выбераешь "GoToDefenition". там ты сможешь увидеть, класс и это. Это один из вариантов : )
Bonus
> нет! ContentPipeline не сделает копию. если нужна копия, то грузи через
> Texture2D.FromFile
а, ну может. Там ж пайплайны юзаются. Я х.з. как они устроены. Я этим УГ - XNA не пользуюсь. Вот если в DX грузить текстуру то будут копии.
.L
> Я этим УГ - XNA не пользуюсь
ну началось
no comments
Bonus
> ну началось
> no comments
Ну по ответам-то уже видно, гражданин получил возможность блеснуть знаниями и самоутвердиться лишний раз. :)
Хотя казалось бы, на вопрос ответь и не выпендривайся, будешь выглядить нормальным человеком, а не - понятно, кем.
Zakus
> Может сначала ознакомится с C# стоит?
Сначала - перед чем?
yaapelsinko
> Ну по ответам-то уже видно, гражданин получил возможность блеснуть знаниями и
> самоутвердиться лишний раз. :)
А потом такие умники вот ноют, что им ни кто не подсказывает. Что форум плохо к новичкам относится. Не подсказываешь - плохой. Подсказываешь - плохой. Вы там соберитесь и определитесь уже чтоли.
yaapelsinko
>будешь выглядить нормальным человеком, а не - понятно, кем.
Я то и выгляжу человеком. Я чем мог - помог, не проигнорил. А ты, для начала, выучи русский язык.. "выглядить" Хотя ты сам, впринципе, себя уже охарактеризовал:
>Идиотский вопрос ....
yaapelsinko
> Хотя казалось бы, на вопрос ответь и не выпендривайся
выпендривания - это такие вот никчёмные посты как #11
yaapelsinko
> Хотя казалось бы, на вопрос ответь и не выпендривайся
Это вообще не твоё дело, усёк? У нас свобода слова, правил форума я не нарушал. Я выразил своё мнение об этой никчёмной поделке мелкомягких. Если так тебя терзают мои слова то я уж добавлю: "по моему мнению".
Подрасти школьник а потом кати бочку.
об этой никчёмной поделке мелкомягких
Сделай лучше.
Тема в архиве.