バージョン
menu_open
警告:あなたのメジャーリリース ( 2023.1.4.8496 ) に該当する最新ドキュメンテーションが表示されています。特定バージョンのドキュメンテーションにアクセスするには、Audiokinetic Launcherでオフラインドキュメンテーションをダウンロードし、Wwise AuthoringのOffline Documentationオプションにチェックを入れてください。
link
Wwise SDK 2023.1.4
AkHashTableTypes.h
[詳解]
1 /***********************************************************************
2  The content of this file includes source code for the sound engine
3  portion of the AUDIOKINETIC Wwise Technology and constitutes "Level
4  Two Source Code" as defined in the Source Code Addendum attached
5  with this file. Any use of the Level Two Source Code shall be
6  subject to the terms and conditions outlined in the Source Code
7  Addendum and the End User License Agreement for Wwise(R).
8 
9  Copyright (c) 2024 Audiokinetic Inc.
10  ***********************************************************************/
11 
12 #pragma once
13 
15 
16 // Basic types for an open-addressed hash array (or, otherwise, keyState-value array).
17 // Exposing enough data and structures to used for forward declarations of types.
18 // Helper and inlineable functions, especially for use by IAkPluginServiceHashTable,
19 // are available in AkHashTableFuncs.h
20 
21 // While the AkHashTableBase structures are exposed here, it is strongly recommended to use either the
22 // AkHashTable namespace functions to modify it, or the IAkPluginHashTable plug-in service, instead.
23 
24 namespace AK
25 {
26  // template instantiations available, in AkHashTable.cpp, are
27  // template<AkUInt32>
28  // template<AkUInt64>
29  template<typename KeyType>
30  struct AkHashTableBase {
32  : pKeys(nullptr)
33  , pbSlotOccupied(nullptr)
34  , pValues(nullptr)
36  , uNumUsedEntries(0)
38  {
39  }
40  KeyType* pKeys;
42  void* pValues;
43 
49 
50  static const AkUInt32 kDefaultMaxLoadFactor = 28; // divided by 32 = 87% load. Robin-hood-style storage ensures that most probe lengths should be low even at this ratio
51 
52  };
53 
54  // main class to use; trivially convertible to AkHashTableBase
55  // This allows for static disambiguation of hashtables for different value types; it's just syntactic sugar
56  template<typename KeyType, typename ValueType>
57  struct AkHashTable : public AkHashTableBase<KeyType>
58  {
59  ValueType* ValueData() { return (ValueType*)AkHashTableBase<KeyType>::pValues; }
60  const ValueType* ValueData() const { return (const ValueType*)AkHashTableBase<KeyType>::pValues; }
61 
62  ValueType& ValueAt(AkInt32 uSlot) { return ((ValueType*)AkHashTableBase<KeyType>::pValues)[uSlot]; }
63  const ValueType& ValueAt(AkInt32 uSlot) const { return ((ValueType*)AkHashTableBase<KeyType>::pValues)[uSlot]; }
64  };
65 
66 } // namespace AK
uint16_t AkUInt16
Unsigned 16-bit integer
Audiokinetic namespace
int32_t AkInt32
Signed 32-bit integer
const ValueType & ValueAt(AkInt32 uSlot) const
ValueType * ValueData()
static const AkUInt32 kDefaultMaxLoadFactor
ValueType & ValueAt(AkInt32 uSlot)
uint32_t AkUInt32
Unsigned 32-bit integer
const ValueType * ValueData() const

このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう