LINUX.ORG.RU

Сообщения pashazz

 

Steam для Linux: довольно скоро

так позавчера сказал Гейб.

НеЪ могут последовать сюда: http://www.gametrailers.com/full-episodes/ncis3o/gt-tv-valve

 

pashazz
()

как пройти 8 камеру в Portal?

Рядом с выходом порталы не открываются, на потолке тоже.

 ,

pashazz
()

Wine 1.5.11 вышел

Изменения:

  • Multi-channel support in the ALSA driver.
  • Removal of the big X11 lock.
  • Support for pair positioning adjustments in Uniscribe.
  • More I/O stream implementations in the C++ runtime.
  • Various bug fixes.

Из багфиксов - починили небо в сталкере - http://bugs.winehq.org/show_bug.cgi?id=16580

ну и куда же без бага 5летней давности http://bugs.winehq.org/show_bug.cgi?id=7260

а главное, теперь, как и в старые добрые времена, релизы снова по пятницам

 

pashazz
()

В Ubuntu все просто работает.

Начитавшись зенитара попробовал таки OpenSUSE. Установил, ок. 1) Русской консольки нет. Как ее включить - понятно, непонятно, какие русские шрифты установлены в SUSE. Ладно, забьем.

2) Окей, может я плохо читал документацию, идем дальше. GNOME 3 ужасен, устанавливаем KDE, все хорошо. Хочу роллинг-релиз ибо там новые ядра. Поставил репы роллинга, обновился - отвалился видеодрайвер intel (точнее DRI).

3)Оказывается в сусе нет нифига по умолчанию, и чтобы установить vlc, нужно включать пакмана. Причем информацию нужно искать на офсайте или на вики, прямо винда получается. Не то, что в убунте - понаставил галок, и готово.

4)Новые драйвера находятся в репозитории Xorg, который несовместим с tumbleweed. Это же вроде роллинг? плохой роллинг получается))

Вернулся на убунту с облегчением. Марк, спасибо. Добавил ppa со свежими кедами и ppa со свежими дровами интела, ничего при обновлении не отвалилось. И к тому же, впервые supertuxkart не тормозит.

Это все на буке, на десктопе gentoo непоколебима. Зенитар не прав. Вывод: ubuntu готова для массого десктопа.

 ,

pashazz
()

Я просто оставлю это здесь:

http://www.teamfortress.com/bloodbrothers/

ах да, разжевывание для Ъ: в последней версии комикса blood brothers появился третий брат, он самый крутой. Первого зовут, понятно, Redmond. Второго - Blutarch, тут не совсем понятно, но на форуме steam я выяснил, что это MacOSX.
Третий, Grey Mann, появляется в середине... ну вы поняли.

И еще: презентация Valve - Left4Dead2 на Linux (PDF): http://www.khronos.org/assets/uploads/developers/library/2012-siggraph-opengl...

 , ,

pashazz
()

Симка мтс коннект работает по всей россии?

Имею ввиду из их комплекта. Или при выезде из региона можно выкидывать?

 ,

pashazz
()

Valve представила Left4Dead2 для Linux: детали

Дисклеймер: да, я буду кросспостить в толксы интересные новости от valve, потому что приход valve в мир GNU изменит его, возможно до неузнаваемости. Кнопка «Игнорировать тег» всегда доступна.

Итак, стали известны некоторые детали:

  • Презентация была создана Rich G., работником Valve и называлась «Left 4 Dead 2 в Linux: от 5 до 300 FPS в OpenGL»
  • На NVIDIA GTX 680 OpenGL-рендер производительнее Direct3D на 11%, несмотря на то, что OpenGL-рендер - это обертка над D3D9.
  • Путем оптимизации рендера они надеются увеличить производительность еще на 5%
  • Эта обертка не похожа на ту, что используется в Wine: она работает в реальном времени (non-deferring). Source предоставляет d3d9-подобное api, которое динамически преобразуется в вызовы OpenGL. Поддерживается Shader Model 2.0, вскоре будет поддержка и 3.0
  • Данный уровень абстракции называют идеальным: nearly 1:1 mapping between d3d and gl concepts.
  • На однопоточных драйверах обертка дает примерно 20% оверхеда, но NVIDIA в последнее время сильно улучшила драйвера в части многопоточными. И опять же, OpenGL быстрее
  • Valve работала (и работает) с AMD, Intel и NVIDIA, улучшая и оптимизируя графические драйвера.
  • Использовался Telemetry от RAD Game Tools, а также их собственный профайлер для OpenGL-рендерера.

    Более детально они расскажут обо всем в блоге, о чем я также напишу под тегом 'valve'

    via http://www.phoronix.com/scan.php?page=news_item&px=MTE1NzE

 

pashazz
()

просто SIP звонилка

давно искал такую взамен монструозной екиги, и, похоже, нашел: https://github.com/bigbn/Telesk
пока не пробовал, но скриншот выглядит вкусно.

 

pashazz
()

Valve представила Left4Dead2 для Linux на SIGGRAPH 2012

http://www.phoronix.com/scan.php?page=news_item&px=MTE1Njc
sqrt(Ъ):
http://www.phoronix.net/image.php?id=0x2012&image=valve_siggraph_linux1_med
http://www.phoronix.com/image-viewer.php?id=0x2012&image=valve_siggraph_l...
http://www.phoronix.com/image-viewer.php?id=0x2012&image=valve_siggraph_l...

По ссылкам хренового качества фоточки с конфы с игровым процессом и туксом.

А вот еще новость: в Steam будет продаваться софт (для Linux, по-видимому, тоже): http://store.steampowered.com/news/8584/

Я думаю, неплохая новость, учитывая то, что сейчас софт продает только ubuntu software center :)

 

pashazz
()

Легкий способ обхода корпоративных фильтров

OperaTurbo обходит фильтры?
Никогда не пользовался оперой и не знаю о техническом устройстве.
Заранее спасибо.

 

pashazz
()

gnu/linux switcher helper

Вот у нас тут часто вылезают всякие вылдродни и прочие flareguner со своими велосипедами, а меж тем у меня появилась тут годная идея.

ОС GNU/Linux набирает обороты на десктопах, но все же процент остается небольшим. Как известно, пользователь работает не с ОС, а с программами.

Поэтому предлагаю запилить утилиту для шиндошс, которая бы делала следующие вещи:

  • Шаг 1: проверка железа на совместимость с Linux. Если необходимы проприетарные драйверы, их название запомнить
  • Шаг 2: получение списка установленного ПО и игр
  • Шаг 3: показать пользователю несколько скриншотов с современными DE: KDE4, MATE, Gnome3, Cinnamon, Unity, E17, EDE, etc.
  • Шаг 4: проверка ПО на совместимость: если данное ПО есть для GNU/Linux, показать зеленую галочку напротив, если нет - показать список нативных альтернатив, с упором на выбранное DE и/или показать рейтинг Wine AppDB с соответствующей пометкой.
  • Шаг 5: В соответствии с выбранным пользователем DE подобрать дистрибутив из числа оных с низким порогом вхождения: Ubuntu, если Unity, OpenSUSE если KDE, и т.д.
  • Шаг 6: Вывести ссылку на офсайт, форум и последний iso образ выбранного дистрибутива.
  • Шаг 7: Вывести названия выбранных пакетов из шагов 1,3,4 с указаниями по их установке и установке дистрибутива
  • Шаг 8: PROFIT

 

pashazz
()

valve набирает команду бесплатных бетатестеров

http://blogs.valvesoftware.com/linux/faster-zombies/
ctrl+f по слову «added», пишите, и возможно вас тоже добавят

 

pashazz
()

публичный релиз UrbanTerror 4.2 beta

 

pashazz
()

забыть /dev/ttyUSB{0-2}

есть 3g модем MTSZTE. При его подключении создаются устройства /dev/ttyUSB{0-3}. Рабочее при этом только /dev/ttyUSB3, но nm все время норовит подключиться к USB0 или USB1

решил удалением /dev/ttyUSB{0-2} до того, как nm определит девайс (но нужно уложиться в 1 секунду)

Ubuntu lucid. Да я знаю что на 12.04 все работает, но обновиться нет возможности. Посоветуйте workaround.

 ,

pashazz
()

Баскетболисты молодцы

Испания 74
Россия 77

в 1/4 финала Литва. А линукс тут при том, что я смотрел матч через ноутбук с линуксом.

А до того бразильцев обыграли в одно очко благодаря трёхе на последних секундах.

 london 2012,

pashazz
()

Valve представит «Steam'd Penguins» 8 августа в Лос-Анджелесе

на OpenGL SIGGRAPH 2012 тогда же, возможно, будет названа ДАТА РЕЛИЗА.

Ъ

Rich Geldreich from Valve will talk about their awesome project “Steam’d Penguins” that brings Steam and OpenGL games to Linux. Rich will be speaking about their challenges and successes porting Left 4 Dead 2 to OpenGL on Linux

http://www.khronos.org/news/events/siggraph-los-angeles-2012

простите, если боян.

 ,

pashazz
()

Ваши Linux-диски

какие дистрибутивы Линукса у вас хранятся/хранились? у меня есть большая коллекция дистрибутивов разных годов, позже напишу о ней, хотелось бы услышать про ваши.

p.s. модеры, в talks только не скидывайте, а то упадет далеко, и когда я свою приведу в нормальный вид, я тему уже не найду.

ps2: образы дисков тоже интересны

Перемещено mono из linux-install

pashazz
()

Звездатый вендузятник все троллит, и еще на свободе?

сделайте что-нибудь с Reset, please.

pashazz
()

Пытаюсь сделать автокомплит через IPython

Автокомплита нет. Снял видео, в котором показываю, как пытаюсь вызвать автокомплит + кусок .emacs
http://rghost.ru/39250663

что нужно исправить?

 ,

pashazz
()

Исследование CryEngine 2 SDK 1.4.0

как известно, именно на этом движке работает Crysis 2.

В толксах был когда-то топик о слухах о том, что cryengine3 есть под Linux.
Я скачал свежий CryEngine3 SDK версии 1.4.
Итак, что же я увидел: Во-первых в директории Code/CryEngine/CryCommon есть 4 интересных файла:
LinuxSpecific.h
Linux32Specific.h
Linux64Specific.h
Linux_Win32Wrapper.h (объемный)

Но и это еще не все. Код буквально испещрен упоминаниями Linux:

CryPool/CryPool.h

#if defined(LINUX) || defined(PS3)
#define CPA_ALLOC							memalign
#define CPA_FREE							free
#else
#define CPA_ALLOC							_aligned_malloc
#define CPA_FREE							_aligned_free
#endif

BitFlidding.h

#if defined(LINUX)
#define countLeadingZeros32(x)              __builtin_clz(x)

CryMath.h

#ifdef LINUX
#include <values.h>
#endif

CryVector2.h

#if defined(LINUX64)
typedef Vec2_tpl<int>	 vector2l;
#else
typedef Vec2_tpl<long>	 vector2l;
#endif

CryXOptimise.h

#if defined(LINUX64)
	#define PrefetchLine(ptr, off) cryPrefetchT0SSE((void*)((UINT_PTR)ptr + off))
	#define ResetLine128(ptr, off) (void)(0)
#else
	#define	PrefetchLine(ptr, off) cryPrefetchT0SSE((void*)((unsigned int)ptr + off))
	#define ResetLine128(ptr, off) (void)(0)
#endif

#if defined _CPU_X86 && !defined(LINUX)
  if (OptFlags & CPUF_SSE)
    multMatrixf_Transp2_SSE(pOut, pM1, pM2);
  else
#endif

#if defined _CPU_X86 && !defined(LINUX)
// Inline assembly syntax for use with Visual C++
//много-много асма
#endif

#if defined _CPU_X86 && !defined(LINUX)
  if (OptFlags & CPUF_SSE)
    multMatrixf_Transp2_SSE(pOut, pM1, pM2);
  else
#endif

#if defined(LINUX64)
	#define PrefetchLine(ptr, off) cryPrefetchT0SSE((void*)((UINT_PTR)ptr + off))
	#define ResetLine128(ptr, off) (void)(0)
#else
	#define	PrefetchLine(ptr, off) cryPrefetchT0SSE((void*)((unsigned int)ptr + off))
	#define ResetLine128(ptr, off) (void)(0)
#endif
и дальше в этом же файле дофига асма и дефайнов LINUX

CryArray.h

#if !defined(LINUX)
	template<> struct IntTraits<unsigned long>
	{
		typedef long TSigned;
	};
#endif

CryFixedString.h

#if defined(PS3) || defined(LINUX)
	_Self& operator=( const CryStringT<T> &str );
#endif

#if defined(LINUX)
	template<size_t AnySize>
	_Self& operator=(const CryStackStringT<T, AnySize> &str)
	{
		_Assign( str.c_str(),str.size() ) ;
		return *this;
	}
#endif 	

#if defined(PS3) || defined(LINUX)
	_Self& operator+=( const CryStringT<T> &str );
#endif	

#if defined(PS3) || defined(LINUX)
template <class T, size_t S>
inline CryStackStringT<T,S>::CryStackStringT( const CryStringT<T> &str )
{
	_Initialize();
	size_t nLength = str.size();
	if (nLength > 0)
	{
		_AllocData(nLength);
		CharTraits<T>::_copy( m_str,str.c_str(),nLength );
		CRY_STRING_DEBUG(m_str)
	}
}
#endif

#if defined(PS3) || defined(LINUX)
template <class T, size_t S> 
inline CryStackStringT<T,S>& CryStackStringT<T,S>::operator=( const CryStringT<T> &str )
{
	_Assign( str.c_str(),str.size() ) ;
	return *this;
}

template <class T, size_t S> 
inline CryStackStringT<T,S>& CryStackStringT<T,S>::operator+=( const CryStringT<T> &str )
{
	_ConcatenateInPlace( str.c_str(),str.size() );
	return *this;
}
#endif

#if defined(LINUX)
	template<size_t AnySize>
	_Self& operator=(const CryStackStringT<T, AnySize> &str)
	{
		_Assign( str.c_str(),str.size() ) ;
		return *this;
	}
#endif 	

#if defined(PS3) || defined(LINUX)
	CryStackStringT( const CryStringT<T> &str );
#endif

CryHalf.inl

#	if defined(WIN32) || defined(WIN64) || defined(LINUX)

__forceinline CryHalf CryConvertFloatToHalf(const float Value)
{
#ifdef LINUX
	asm volatile("" ::: "memory");
#endif

CryLibrary.h ВНИМАНИЕ

#elif (defined(LINUX) && !defined(_LIB))
	#include <dlfcn.h>
	#include <stdlib.h>
	#include "platform.h"

	// for compatibility with code written for windows
	#define CrySharedLibraySupported true
	#define CrySharedLibrayExtension ".so"
	#define CryGetProcAddress(libHandle, procName) ::dlsym(libHandle, procName)
	#define CryFreeLibrary(libHandle) ::dlclose(libHandle)

	#define HMODULE void*
	static const char* gEnvName("MODULE_PATH");

	static const char* GetModulePath()
	{
		return getenv(gEnvName);
	}

	static void SetModulePath(const char* pModulePath)
	{
		setenv(gEnvName, pModulePath?pModulePath:"",true);
	}

	static HMODULE CryLoadLibrary(const char* libName, const bool cAppend = true, const bool cLoadLazy = false)
	{
		//[K01]: linux version
		char path[_MAX_PATH];
		sprintf(path, "%s/%s", GetModulePath(), libName);
		return ::dlopen(path, RTLD_LAZY);
	}

CryMemoryAllocator.h

#ifdef LINUX64
#include <sys/mman.h>
#endif

#elif defined(LINUX64)
enum {_ALIGNMENT = 16, _ALIGN_SHIFT = 4, __MAX_BYTES = 512, NFREELISTS=32, ADDRESSSPACE = 2 * 1024 * 1024, ADDRESS_SHIFT = 40};
#else
enum {_ALIGNMENT = 8, _ALIGN_SHIFT = 3, __MAX_BYTES = 512, NFREELISTS = 64, ADDRESSSPACE = 2 * 1024 * 1024, ADDRESS_SHIFT = 20};
#endif


// Allocators!
enum EAllocFreeType 
{
	eCryDefaultMalloc,
	eCryMallocCryFreeCRTCleanup,
	eCryLinuxMalloc
};

#ifdef LINUX64
template <>
struct Node_Allocator<eCryLinuxMalloc>
{
	struct _MemHead
	{
		void* ptr;
		size_t size;
	};

	inline void * pool_alloc(size_t size) 
	{
		char *p = (char*)mmap(NULL, size + sizeof(_MemHead), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_32BIT | MAP_ANONYMOUS, -1, 0);
		_MemHead* pH = (_MemHead*)p;
		pH->ptr = p;
		pH->size = size;
		p += sizeof(_MemHead);
		return p;
	};
	inline void * cleanup_alloc(size_t size) 
	{
		char* p = (char*)mmap(NULL, size + sizeof(_MemHead), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_32BIT | MAP_ANONYMOUS, -1, 0);
		_MemHead* pH = (_MemHead*)p;
		pH->ptr = p;
		pH->size = size;
		p += sizeof(_MemHead);
		return p;
	};
	inline size_t pool_free(void * ptr) 
	{
		_MemHead* pH = (_MemHead*)((char*)ptr - sizeof(_MemHead));
		size_t n = pH->size;
		munmap(pH->ptr, pH->size + sizeof(_MemHead));
		return n;
	};
	inline void cleanup_free(void * ptr)
	{
		_MemHead* pH = (_MemHead*)((char*)ptr - sizeof(_MemHead));
		munmap(pH->ptr, pH->size + sizeof(_MemHead));
	};
	inline size_t getSize(void * ptr)
	{
		_MemHead* pH = (_MemHead*)((char*)ptr - sizeof(_MemHead));
		return pH->size;
	}
};
#endif // LINUX64

//#ifdef LINUX
//#define USE_WRITELOCKS
//#endif


CryMemoryManager.h

#if defined(PS3) || defined(LINUX)
	#include <new>

#if defined(_DEBUG) && !defined(PS3) && !defined(LINUX)
	#include <crtdbg.h>
#endif //_DEBUG

CryMemoryManager_impl.h

#ifdef LINUX
		for(iter=0,hMod=::dlopen(NULL, RTLD_LAZY); hMod; iter++)
#else //LINUX
		for(iter=0,hMod=GetModuleHandle(0); hMod; iter++)
#endif //LINUX


#ifdef LINUX
			hMod = CryLoadLibrary("CrySystem.so"); 
#else //LINUX
      hMod = CryLoadLibrary("CrySystem.dll"); 
#endif //LINUX


#ifdef WIN32
				MessageBox(NULL, "Could not access CrySystem.dll (check working directory)", "Memory Manager", MB_OK);
#else
      if (!hMod)
        OutputDebugString("Could not access CrySystem.dll (check working directory)");
      else
        OutputDebugString("Could not get Memory Functions in CrySystem.dll");
#endif


CrySizer.h

#ifdef LINUX
#include <tr1/unordered_map>
#else
#include <unordered_map>
#endif

CryThread.h

#if defined(LINUX)
#include <CryThread_pthreads.h>
#elif defined(WIN32) || defined(WIN64)
#include <CryThread_windows.h>

CryThread_pthreads.h:

#ifndef _CryThread_pthreads_h_
#define _CryThread_pthreads_h_ 1

#include <ISystem.h>
#include <ILog.h>

#ifndef __SPU__
#  include <sys/types.h>
#  include <sys/time.h>
#  include <pthread.h>
#  include <semaphore.h>
#  include <sched.h>
#endif

CryThreadImpl.h

// Include architecture specific code.
#if defined(LINUX)
#include <CryThreadImpl_pthreads.h>
#elif defined(WIN32) || defined(WIN64)
#include <CryThreadImpl_windows.h>

CryTypeInfo.h

#if defined(PS3) || defined(LINUX)

#undef CVTDIGITHEX
#undef CVTDIGITDEC
#define CVTDIGITHEX(VALUE, P, STRING) \
{ \
  if (VALUE) \
  { \
    unsigned int _digit = (VALUE % 16); \
    _digit += (_digit > 10) ? 'a' - 10 : '0'; \
    *P++ = (char)_digit; \
  } \
  else \
  { \
    *P = 0; \
    return STRING; \
  } \
  VALUE /= 16; \
}
#define CVTDIGITDEC(VALUE, P, STRING) \
{ \
  if (VALUE) \
    *P++ = '0' + (char)(VALUE % 10); \
  else \
  { \
    *P = 0; \
    return STRING; \
  } \
  VALUE /= 10; \
}


#undef CVTDIGITDEC
#undef CVTDIGITHEX

#endif // PS3 || LINUX

#ifndef LINUX64
TYPE_INFO_INT(long)
TYPE_INFO_INT(unsigned long)
#endif

#ifndef LINUX64
// long
string ToString(long const& val)
{
	char buffer[64];
	ltoa(val, buffer, 10);
	return buffer;
}

// ulong
string ToString(unsigned long const& val)
{
	char buffer[64];
	ultoa(val, buffer, 10);
	return buffer;
}
#endif

#ifndef LINUX64
bool FromString(long& val, const char* s)							{ return ClampedIntFromString(val, s); }
bool FromString(unsigned long& val, const char* s)		{ return ClampedIntFromString(val, s); }
#endif

// CRAIG: just a temp workaround to try and get things working
#ifndef LINUX
	pSizer->AddString(*(string*)data);
#endif
}

Endian.h

#if defined(WIN64) || defined(LINUX64)
template<class T>
ILINE void SwapEndian(T* t, unsigned int nCount, bool bSwapEndian = eLittleEndian)
{
	if (bSwapEndian)
		SwapEndianBase(t, nCount);
}
#endif

IAgent.h, IAIGroup.h, IAIRecoder.h

#ifdef LINUX
#	include "platform.h"
#endif

ICryPak.h

#if defined(LINUX)
	char adjustedName[MAX_PATH];
	GetFilenameNoCase(file, adjustedName, bWriteAccess);

	int accessFlag = R_OK;
	if (bWriteAccess)
		accessFlag |= W_OK;

	// check if file exists
	int err = access(adjustedName, F_OK);
	if (err != 0)
	{
		// file not exists, so fail in case of not bWriteAccess
		// in case of bWriteAccess check parent directory permission
		if (!bWriteAccess)
			return 0;

		char parentDir[MAX_PATH];
		strcpy_s(parentDir, adjustedName);

		char* p = strrchr(parentDir, '/');
		if (0 != p)
		{
			*p = 0;
		}
		else
		{
			parentDir[0] = '.';
			parentDir[1] = 0;
		}
		err = access(parentDir, accessFlag);
	}
	else
	{
		// file exists so check permission on it
		err = access(adjustedName, accessFlag);
	}
	if (0 == err)
	return fopen(adjustedName, mode);
	else
		return 0;
#else
	// This is on windows or xbox.
//опущено

#endif //LINUX

IJobManager.h

#if defined(WIN64) || defined(LINUX64) 
			volatile int64 exchangeValue;
#else
			volatile long exchangeValue;
#endif

		//sizes for accessing the SQueueNodeSPU array
#if defined(WIN64) || defined(LINUX64)
		static const unsigned int scSizeOfSJobQueueEntry			= 256;	//sizeof SInfoBlock (extra coded because shift)
		static const unsigned int scSizeOfSJobQueueEntryShift = 8;		//SInfoBlock in shifts
#else
		static const unsigned int scSizeOfSJobQueueEntry			= 128;	//sizeof SInfoBlock (extra coded because shift)
		static const unsigned int scSizeOfSJobQueueEntryShift = 7;		//SInfoBlock in shifts
#endif

#if defined(WIN64) || defined(LINUX64)
			pDst[4] = cpSrc[4];
			pDst[5] = cpSrc[5];
			pDst[6] = cpSrc[6];		
			pDst[7] = cpSrc[7];		

#endif 

#if defined(WIN64) || defined(LINUX64)
	if((SPU_DRIVER_INT_PTR)cNextPtr >= (SPU_DRIVER_INT_PTR)m_RingBufferEnd)	cNextPtr = (SPU_DRIVER_INT_PTR)m_RingBufferStart;
	return (void*)cNextPtr;
#else
	const unsigned int cNextPtrMask = (unsigned int)(((int)(cNextPtr - m_RingBufferEnd)) >> 31);
	return (void*)(cNextPtr & cNextPtrMask | m_RingBufferStart & ~cNextPtrMask);
#endif

#if defined(WIN64) || defined(LINUX64)// for 64 bit, we need to atomicly swap 128 bit
		int64 compareValue[2] = { *alias_cast<int64*>(&curQueueRunningState),(int64)nPushPtr};		
#if defined(WIN64)
		_InterlockedCompareExchange128((volatile int64*)this, (int64)markedPushPtr, *alias_cast<int64*>(&curQueueRunningState), compareValue);
#else //LINUX64
		CryInterlockedCompareExchange128((volatile int64*)this, (int64)markedPushPtr, *alias_cast<int64*>(&curQueueRunningState), compareValue);
#endif


IShader.h

#if defined(LINUX) || defined(PS3)
  #include <platform.h>
#endif

#if !defined(PS3) && !defined(LINUX)
ENUM_INFO_BEGIN(ETEX_Format)
	ENUM_ELEM_INFO(, eTF_Unknown)
	ENUM_ELEM_INFO(, eTF_R8G8B8)
	ENUM_ELEM_INFO(, eTF_A8R8G8B8)
	ENUM_ELEM_INFO(, eTF_X8R8G8B8)
	ENUM_ELEM_INFO(, eTF_A8)
	ENUM_ELEM_INFO(, eTF_A8L8)
	ENUM_ELEM_INFO(, eTF_L8)
	ENUM_ELEM_INFO(, eTF_A4R4G4B4)
	ENUM_ELEM_INFO(, eTF_R5G6B5)
	ENUM_ELEM_INFO(, eTF_R5G5B5)
	ENUM_ELEM_INFO(, eTF_V8U8)
	ENUM_ELEM_INFO(, eTF_CxV8U8)
	ENUM_ELEM_INFO(, eTF_X8L8V8U8)
	ENUM_ELEM_INFO(, eTF_L8V8U8)
	ENUM_ELEM_INFO(, eTF_L6V5U5)
	ENUM_ELEM_INFO(, eTF_V16U16)
	ENUM_ELEM_INFO(, eTF_A16B16G16R16)
	ENUM_ELEM_INFO(, eTF_A16B16G16R16F)
	ENUM_ELEM_INFO(, eTF_A32B32G32R32F)
	ENUM_ELEM_INFO(, eTF_G16R16F)
	ENUM_ELEM_INFO(, eTF_R16F)
	ENUM_ELEM_INFO(, eTF_R32F)
	ENUM_ELEM_INFO(, eTF_DXT1)
	ENUM_ELEM_INFO(, eTF_DXT3)
	ENUM_ELEM_INFO(, eTF_DXT5)
	ENUM_ELEM_INFO(, eTF_3DC)
	ENUM_ELEM_INFO(, eTF_G16R16)
	ENUM_ELEM_INFO(, eTF_NULL)
	ENUM_ELEM_INFO(, eTF_DF16)
	ENUM_ELEM_INFO(, eTF_DF24)
	ENUM_ELEM_INFO(, eTF_D16)
	ENUM_ELEM_INFO(, eTF_D24S8)
	ENUM_ELEM_INFO(, eTF_D32F)
	ENUM_ELEM_INFO(, eTF_DEPTH16)
	ENUM_ELEM_INFO(, eTF_DEPTH24)
  ENUM_ELEM_INFO(, eTF_A2R10G10B10)
ENUM_INFO_END(ETEX_Format)
#endif

ISystem.h

#if defined(LINUX)
	void (*pCheckFunc)(void*);						// Authentication function (must be set).
#else
	void *pCheckFunc;								// Authentication function (must be set).
#endif

IValidator.h

#if defined(WIN32) || defined(WIN64) || defined(LINUX)
#	define MAX_WARNING_LENGTH	4096
#else
#	define MAX_WARNING_LENGTH	512
// reduce max warning length for consoles (e.g. to prevent overflows on PS3 where thread stack are rather small)
#endif

IXml.h

#ifndef LINUX64
	void setAttr( const char* key,unsigned long value ) { setAttr( key,(unsigned int)value ); };
	void setAttr( const char* key,long value ) { setAttr( key,(int)value ); };
#endif

#ifndef LINUX64
	bool getAttr( const char *key,long &value ) const { int v; if (getAttr(key,v)) { value = v; return true; } else return false; }
	bool getAttr( const char *key,unsigned long &value ) const { unsigned int v; if (getAttr(key,v)) { value = v; return true; } else return false; }
#endif

MultiThread.h

	#if defined(LINUX64)
	unsigned char CryInterlockedCompareExchange128( int64 volatile *dst, int64 exchangehigh, int64 exchangelow, int64* comperand );
	#endif

physinterface.h

#if defined(LINUX)
	//#include "Stream.h"
	//#include "validator.h"
#endif

platform.h

#if defined(LINUX)
#define _FILE_OFFSET_BITS 64 // define large file support > 2GB
#endif

// Compile with unit testing enabled
#if !defined(PS3) && !defined(_XBOX_VER) && !defined(LINUX)
#define CRY_UNIT_TESTING
#endif

ProjectDefines.h

#if defined(LINUX)
#	define EXCLUDE_SCALEFORM_SDK
#	define EXCLUDE_CRI_SDK

ScriptHelpers.h

// [K01]: disabled int version since it is overloaded with float and isn't compiled
// under GCC for enum types
#ifndef LINUX
	void RegisterGlobal( const char *sName,int nValue )
	{
		m_pSS->SetGlobalValue(sName,nValue);
	}
#endif

smartptr.h

#if defined(LINUX64)
	_smart_ptr(typeof(__null)) : p(NULL) {}
#endif

StlUtils.h

#if (_MSC_VER >= 1400) && !defined(_STLP_BEGIN_NAMESPACE) // Visual Studio 2005 without STLPort
#include <hash_map>
#undef std__hash_map
#define std__hash_map stdext::hash_map
#elif defined(LINUX) && !defined(USING_STLPORT)
#include "platform.h"
#include <ext/hash_map>
#define std__hash_map __gnu_cxx::hash_map
#else
#include <hash_map>
#endif

StringUtils.h

#if defined(LINUX)
	#include <ctype.h>
#endif

WinBase.cpp

///////////////////////////////////////////////////////////////////////////
//
//  Crytek Engine Source File.
//  Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
//  File name:   WinBase.cpp
//  Version:     v1.00 
//  Created:     10/3/2004 by Michael Glueck
//  Compilers:   GCC
//  Description: Linux port support for Win32API calls
// -------------------------------------------------------------------------
//  History:
//
////////////////////////////////////////////////////////////////////////////

полностью: http://paste.kde.org/518084

SharedParams/SharedParamsManager.h

#ifdef LINUX
#include <tr1/unordered_map>
#else
#include <unordered_map>
#endif

Вывод: порт CryEngine3 для Linux существует, и, я думаю, CryTek может выпустить Crysis 2 для Linux когда выйдет Steam. Логично, что они не сделали этого раньше, ибо продавать негде.

P.S. Никаких упоминаний Darwin и/или MacOSX найдено не было.

 длинная простыня

pashazz
()

RSS подписка на новые темы