30960

Mais qu'est-ce que c'est que ce truc ? grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

30961

Il trouvait le train arrière instable, alors, il l'a très légèrement élargi
avatar
pedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères

30962

C'est une "amélioration" de ça :
jaguar-e-type-reborn-jaguar-classic-announces-285k-e-type-restorations-5610_15703_969X727.jpg


(bon, en fait il est parti d'une version 2+2, qui n'est déjà pas terrible d'origine, mais là...)

30963

30964

(et là une turbo v6 — 1.5L, 1200+bhp en configuration de qualif grin)


30965

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

30966

30967

?format=jpg&size=x500
avatar
pedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères

30968

#vomi#

30969

Godzil (./30932) :
9td9af-jpg.136858
Ou la déchéance d'un super héros.

Zerosquare (./30960) :
Mais qu'est-ce que c'est que ce truc ? grin
L'objet décrit dans le poste précédent est une automobile, en d'autres termes un véhicule automobile à roues propulsé par un moteur et destiné au transport terrestre de personnes, de leurs bagages et de petits objets.
L'automobile est un moyen de transport privé parmi les plus répandus, sa capacité est généralement de deux à cinq personnes, mais peut varier de une à neuf places. Il possède généralement quatre roues, mais leur nombre peut varier de une à neuf (voir aussi : Lego).
Cependant, l'usage limite l'emploi du terme automobile aux véhicules possédant quatre roues, de dimensions inférieures à celle des autobus et des camions, mais englobe parfois les camionnettes. Bien qu'étant des « véhicules automobiles », les motocyclettes ne sont pas habituellement classées dans cette catégorie
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

30970

bien la vidéo de moto, ma fille va adorer pour sauter sur mes genoux grin

30971

Ah, elle fait de la moto ?

30972

avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

30973

Brunni > grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

30974

Voilà pour moi, je peux descendre en -1 et me rapprocher, je cumule à 13:06
Position X = -62 | Y = 6 | N = 0
11524894 Yeu'Ki'Pic Vue : -5 | Effet de Zone
11370110 Rune Explosive PV : -2 D3 | Effet de Zone
avatar
pedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères

30975

static CRect	_FeedMinMaxUV(const TMemoryView<const CFloat2> &texcoords)
{
	HH_ASSERT(!texcoords.Empty());
	// SIMD loop below 22 times faster than naive C++ loop with HHMin/HHMax on
	// the CFloat2 values that was generating branches + cmovs.

	const CFloat2	*srcUV = texcoords.Data();
	const CFloat2	*srcUVStop = texcoords.DataEnd();
	SIMD::Scalar	minU = srcUV->x();
	SIMD::Scalar	minV = srcUV->y();
	SIMD::Scalar	maxU = minU;
	SIMD::Scalar	maxV = minV;

	if (Mem::IsAligned<0x10>(texcoords.Data()))
	{
		SIMD::Float4	minUVx4_01 = SIMD::Float4(minU, minV, minU, minV);
		SIMD::Float4	maxUVx4_01 = minUVx4_01;
		SIMD::Float4	minUVx4_23 = minUVx4_01;
		SIMD::Float4	maxUVx4_23 = maxUVx4_01;

		srcUVStop -= 4;
		while (srcUV <= srcUVStop)
		{
			const SIMD::Float4	uv0uv1 = SIMD::Float4::LoadAligned16(srcUV, 0x00);
			const SIMD::Float4	uv2uv3 = SIMD::Float4::LoadAligned16(srcUV, 0x10);
			minUVx4_01 = SIMD::Min(minUVx4_01, uv0uv1);
			maxUVx4_01 = SIMD::Max(maxUVx4_01, uv0uv1);
			minUVx4_23 = SIMD::Min(minUVx4_23, uv2uv3);
			maxUVx4_23 = SIMD::Max(maxUVx4_23, uv2uv3);
			srcUV += 4;
		}
		srcUVStop += 4;

		const SIMD::Float4	minUVx4 = SIMD::Min(minUVx4_01, minUVx4_23);
		const SIMD::Float4	maxUVx4 = SIMD::Max(maxUVx4_01, maxUVx4_23);
		const SIMD::Float4	hMin = SIMD::Min(minUVx4, minUVx4.Swizzle<2,3,2,3>());	// movehl
		const SIMD::Float4	hMax = SIMD::Max(maxUVx4, maxUVx4.Swizzle<2,3,2,3>());	// movehl
		minV = hMin.y();
		minU = hMin.x();
		maxV = hMax.y();
		maxU = hMax.x();
	}

	while (srcUV < srcUVStop)
	{
		const SIMD::Scalar	u = SIMD::Scalar::Load(srcUV, 0);
		const SIMD::Scalar	v = SIMD::Scalar::Load(srcUV, 4);
		minU = SIMD::Min(minU, u);
		minV = SIMD::Min(minV, v);
		maxU = SIMD::Max(maxU, u);
		maxV = SIMD::Max(maxV, v);
		srcUV += 1;
	}

	return CRect::FromMinMaxUnchecked(	CFloat2(minU.AsFloat(), minV.AsFloat()),
										CFloat2(maxU.AsFloat(), maxV.AsFloat()));
}

//----------------------------------------------------------------------------

static bool	_TriangleOverlapsBox(const CFloat2 &pa, const CFloat2 &pb, const CFloat2 &pc, const CFloat4 (&cellBoxCenterAndHalfWidth)[2])
{
	// The cell box center and half widths we're given should be broadcasted to a float4 in 'xyxy' form
	const SIMD::Float4	vbc = SIMD::Float4::LoadAligned16(cellBoxCenterAndHalfWidth, 0x00);
	const SIMD::Float4	vbw = SIMD::Float4::LoadAligned16(cellBoxCenterAndHalfWidth, 0x10);

	const SIMD::Float4	kSwapZWSign = SIMD::Float4::FromConstInt<0,0,0x80000000,0x80000000>();
	const SIMD::Float4	vla = SIMD::Float4::LoadUnaligned(&pa).Swizzle<0,1,0,1>() - vbc;	// NOTE: could also do a 'SIMD::Float4::LoadUnaligned_LoHi(&pa, &pa) - vbc'
	const SIMD::Float4	vlb = SIMD::Float4::LoadUnaligned(&pb).Swizzle<0,1,0,1>() - vbc;
	const SIMD::Float4	vlc = SIMD::Float4::LoadUnaligned(&pc).Swizzle<0,1,0,1>() - vbc;

	// Early-out test: triangle bbox vs cell bbox overlap test: if boxes don't overlap, reject
	const SIMD::Float4	vlaSwap = vla ^ kSwapZWSign;
	const SIMD::Float4	vlbSwap = vlb ^ kSwapZWSign;
	const SIMD::Float4	vlcSwap = vlc ^ kSwapZWSign;
	const SIMD::Float4	vMinMax = SIMD::Min(vlaSwap, vlbSwap, vlcSwap);
	const hh_u32		isOut = vMinMax.MaskGreater_Imm4(vbw);
	if (isOut != 0)
		return false;

	// SAT test for the 3 triangle edges
	// (note: code below would work for quads with almost no changes, we're doing the SAT
	// test in SOA, using the xyz lanes of each vector for the 3 edges. a 4th edge would use w)

	const SIMD::Float4	axcxaycy = SIMD::InterleaveLo(vla, vlc);
	const SIMD::Float4	bxbxbyby = vlb.Swizzle<0,0,1,1>();
	const SIMD::Float4	vlabc_x = SIMD::InterleaveLo(axcxaycy, bxbxbyby);	// axbxcxbx
	const SIMD::Float4	vlabc_y = SIMD::InterleaveHi(axcxaycy, bxbxbyby);	// aybycyby
	const SIMD::Float4	vlbca_x = vlabc_x.Swizzle<1,2,0,2>();
	const SIMD::Float4	vlbca_y = vlabc_y.Swizzle<1,2,0,2>();
	const SIMD::Float4	vlcab_x = vlabc_x.Swizzle<2,0,1,0>();
	const SIMD::Float4	vlcab_y = vlabc_y.Swizzle<2,0,1,0>();

	const SIMD::Float4	e012x = vlbca_x - vlabc_x;
	const SIMD::Float4	e012y = vlbca_y - vlabc_y;

	const SIMD::Float4	pr012_0 = vlabc_x.Nmsub(e012y, vlabc_y * e012x);
	const SIMD::Float4	pr012_1 = vlcab_x.Nmsub(e012y, vlcab_y * e012x);

	const SIMD::Float4	pr012Min = SIMD::Min(pr012_0, pr012_1);
	const SIMD::Float4	pr012Max = SIMD::Max(pr012_0, pr012_1);

	const SIMD::Float4	e012xAbs = SIMD::Abs(e012x);
	const SIMD::Float4	e012yAbs = SIMD::Abs(e012y);
	const SIMD::Float4	b012Radius = vbw.xxxx().Madd(e012yAbs, vbw.yyyy() * e012xAbs);
	const SIMD::Float4	pr012Test = SIMD::Max(pr012Min, -pr012Max);

	return pr012Test.MaskGreater_Imm4(b012Radius) == 0;
}

//----------------------------------------------------------------------------

template <typename _Type>
static hh_u32	_ClassifyTriangles(const CRect &bounds, const _Type *indexStream, const TMemoryView<hh_u32> &triangleIDs, const TMemoryView<const CFloat2> &texcoords, hh_u32 tIndexMask)
{
	const CFloat2					boxCenter = bounds.Center();
	const CFloat2					boxHalfWidth = 0.5f * (bounds.Max() - bounds.Min());
	HH_ALIGN(0x10) const CFloat4	boxCenterAndHalfWidth[2] =
	{
		CFloat4(boxCenter, boxCenter),
		CFloat4(boxHalfWidth, boxHalfWidth),
	};

	hh_u32	curChildCount = 0;
	for (hh_u32 tidx = 0; tidx < triangleIDs.Count(); tidx++)
	{
		const hh_u32	tIndex = triangleIDs[tidx];
		const hh_u32	vIndex = tIndex + ((tIndex + tIndex) & tIndexMask);
		const CFloat2	&a = texcoords[indexStream[vIndex + 0]];
		const CFloat2	&b = texcoords[indexStream[vIndex + 1]];
		const CFloat2	&c = texcoords[indexStream[vIndex + 2]];

		if (_TriangleOverlapsBox(a, b, c, boxCenterAndHalfWidth))
		{
			HHSwap(triangleIDs[curChildCount], triangleIDs[tidx]);
			curChildCount++;
		}
	}
	return curChildCount;
}
avatar
HURRRR !

30976

30977

Vous avez décalé votre DLA de 739 minutes.
Votre nouvelle DLA sera dorénavant : 08/05/2017 23:30:00
avatar
pedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères

30978

//▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

30979

namespace	Internal
{
	template<hh_u32 _FootprintInBytes> struct	TNativeSwapper		: public FalseType {};
	template<> struct							TNativeSwapper<1>	: public TrueType { static void SwapInPlace(void *data, hh_u32 count) { } };
	template<> struct							TNativeSwapper<2>	: public TrueType { static void SwapInPlace(void *data, hh_u32 count) { Mem::SwapEndian16(data, count); } };
	template<> struct							TNativeSwapper<4>	: public TrueType { static void SwapInPlace(void *data, hh_u32 count) { Mem::SwapEndian32(data, count); } };
	template<> struct							TNativeSwapper<8>	: public TrueType { static void SwapInPlace(void *data, hh_u32 count) { Mem::SwapEndian64(data, count); } };

	template<typename _Type>
	struct	TStreamEndianSwapperHelpers
	{
		static void	SwapInPlace(_Type *data, hh_u32 count)
		{
			for (hh_u32 i = 0; i < count; i++)
			{
				PKSwapEndianInPlace(data\[i]);
			}
		}
	};

	template<> struct	TStreamEndianSwapperHelpers<hh_u8> { static void	SwapInPlace(hh_u8 *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
	template<> struct	TStreamEndianSwapperHelpers<hh_i8> { static void	SwapInPlace(hh_i8 *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
	template<> struct	TStreamEndianSwapperHelpers<hh_u16> { static void	SwapInPlace(hh_u16 *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
	template<> struct	TStreamEndianSwapperHelpers<hh_i16> { static void	SwapInPlace(hh_i16 *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
	template<> struct	TStreamEndianSwapperHelpers<hh_u32> { static void	SwapInPlace(hh_u32 *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
	template<> struct	TStreamEndianSwapperHelpers<hh_i32> { static void	SwapInPlace(hh_i32 *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
	template<> struct	TStreamEndianSwapperHelpers<float> { static void	SwapInPlace(float *data, hh_u32 count) { TNativeSwapper<sizeof(*data)>::SwapInPlace(data, count); } };
}

//----------------------------------------------------------------------------

template<typename _Type>
void	PKSwapEndianInPlace(const TMemoryView<_Type> &object)
{
	Internal::TStreamEndianSwapperHelpers<_Type>::SwapInPlace(object.Data(), object.Count());
}

//----------------------------------------------------------------------------

template<typename _Type, hh_i32 _FootprintInBytes>
void	PKSwapEndianInPlace(const TStridedMemoryView<_Type, _FootprintInBytes> &object)
{
	if ((sizeof(_Type) == _FootprintInBytes ||		// compile-time culling : compact footprint
		_FootprintInBytes % sizeof(_Type) == 0) &&	// compile-time culling : footprint is a multiple of sizeof(_Type), we can reinterpret as a contiguous array of _Type objects and patch the count
		Internal::TNativeSwapper<sizeof(_Type)>::True &&	// we know how to endian-swap this type
		object.Stride() == _FootprintInBytes)
	{
		Internal::TStreamEndianSwapperHelpers<_Type>::SwapInPlace(object.Data(), object.Count() * (_FootprintInBytes / sizeof(_Type)));
		TMemoryView<_Type>	contiguousView = object.ToMemoryViewIFP();
		if (!contiguousView.Empty())
		{
			PKSwapEndianInPlace(contiguousView);
			return;
		}
	}

	for (hh_u32 i = 0; i < object.Count(); i++)
	{
		PKSwapEndianInPlace(object\[i]);
	}
}
avatar
HURRRR !

30980

(y'a pas de tabulations !)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

30981

Lol
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

30982

CTimerCPUCycles timer;
------
mruf... cheeky
(tfacons le code ecrit pour des tabs de 4 espaces display dans les navs ou les tabs en font 8 c'est moche aussi cheeky)
avatar
HURRRR !

30983

Voilà une bonne raison de n'utiliser que des demi espaces!
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

30984

[pre]
avatar
HURRRR !

30985

30986

, bool log
avatar
HURRRR !

30987

uint32_t dfs
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

30988

file != null &&
avatar
HURRRR !

30989

*/5 * * * * * /path/to/script_a_la_con.py
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

30990